在xml中注入属性失败spring-ws config

问题描述

| 我正在使用Spring-WS,并具有以下spring-ws-servlet.xml文件。 defaultURI和marshaller的注入不起作用,因为当我到达服务客户端中的方法时,这些属性为null。 发生的情况是使用正确的值调用了setter,但是在客户端的getSum()方法中,这些值为null。有什么事吗
<?xml version=\"1.0\" encoding=\"UTF-8\"?>
   <beans xmlns=\"http://www.springframework.org/schema/beans\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"
   xmlns:context=\"http://www.springframework.org/schema/context\"
   xmlns:sws=\"http://www.springframework.org/schema/web-services\"
   xmlns:oxm=\"http://www.springframework.org/schema/oxm\"
   xsi:schemaLocation=\"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
   http://www.springframework.org/schema/web-services http://www.springframework.org/schema/web-services/web-services-2.0.xsd
   http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
   http://www.springframework.org/schema/oxm http://www.springframework.org/schema/oxm/spring-oxm-3.0.xsd\">

<context:component-scan base-package=\"com.coral.project.endpoints\"/>

<sws:annotation-driven />

<sws:dynamic-wsdl id=\"test\" portTypeName=\"TestCase\" locationUri=\"/testService/\"
                  targetNamespace=\"http://www.example.org/schemasDef/test/deFinitions\">
    <sws:xsd location=\"/WEB-INF/schemasDef/test.xsd\"/>
</sws:dynamic-wsdl>

<bean id=\"springWSClient\" class=\"com.coral.project.endpoints.SpringWSClient\">
    <property name=\"defaultUri\" value=\"http://localhost:8080/parking/springServices/testService\"/>
    <property name=\"marshaller\" ref=\"marshaller\" />
    <property name=\"unmarshaller\" ref=\"marshaller\" />
</bean>

<oxm:jaxb2-marshaller id=\"marshaller\">
    <oxm:class-to-be-bound name=\"com.coral.project.entity.Street\"/>
</oxm:jaxb2-marshaller>
</beans>
我得到例外: 在组件上调用encodeEnd时发生异常:{Component-Path:[类:org.ajax4jsf.component.AjaxViewRoot,ViewId:/appealConversionStatusReport.jsp] [类:org.apache.myfaces.custom.div.Div,Id:j_id_jsp_1406177460_4] [类:com.exadel.htmLib.components.UITable,Id:j_id_jsp_1406177460_5] [类:com.exadel.htmLib.components.UITbody,Id:j_id_jsp_1406177460_6] [类:org.apache.myfaces.component.html.ext.HtmlInputHidden, ID:j_id_jsp_546672833_0]} 造成原因: java.lang.IllegalStateException-没有注册封送处理程序。检查webservicetemplate的配置。 客户端:
package com.coral.project.endpoints;

import java.io.IOException;
import java.io.StringWriter;

import javax.inject.Inject;
import javax.xml.soap.soAPException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.stream.StreamResult;

import org.springframework.ws.client.core.support.WebServiceGatewaySupport;
import org.springframework.xml.transform.StringSource;

import com.coral.project.dao.ifc.StreetDao;
import com.coral.project.entity.Street;
import com.coral.utils.SpringUtils;

public class SpringWSClient extends WebServiceGatewaySupport {

public void getSum() throws SOAPException,IOException,TransformerException {
    StreetDao streetDao = SpringUtils.getBean(StreetDao.class);
    Street street = streetDao.findById(1);

    getwebservicetemplate().marshalSendAndReceive(
    \"http://localhost:8080/parking/springServices/testService\",street);

}
}
    

解决方法

        您是否在代码中对“ 3”实例进行了“ 2”操作? 另外,对于streetDao,您不需要使用
SpringUtils.getBean
。相反,它应该是一个带有ѭ5with(或
@Resource
)的字段。