[SPRING] XML에서 속성 주입이 실패합니다 (spring-ws config).
SPRINGXML에서 속성 주입이 실패합니다 (spring-ws config).
나는 Spring-WS를 사용 중이며 다음 spring-ws-servlet.xml 파일을 가지고있다. defaultURI와 marshaller의 삽입은 작동하지 않습니다. 왜냐하면 서비스의 클라이언트에서 메소드가 null 일 때이 속성이 null이되기 때문입니다. setters가 올바른 값으로 호출되고 있지만 클라이언트 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 : [Class : org.ajax4jsf.component.AjaxViewRoot, ViewId : /appealConversionStatusReport.jsp][Class : 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);
}
}
해결법
-
==============================
1.코드에서 SpringWSClient 인스턴스 new'ing입니까?
코드에서 SpringWSClient 인스턴스 new'ing입니까?
또한 streetDao의 경우 SpringUtils.getBean을 사용할 필요가 없습니다. 대신 @Autowired (또는 @Resource)로 주석 된 필드 여야합니다.
from https://stackoverflow.com/questions/6189601/injection-of-property-in-xml-fails-spring-ws-config by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] @AspectJ Spring 3.1을 기반으로 한 AOP (0) | 2019.05.18 |
---|---|
[SPRING] 프로퍼티 파일의 경로를 얻고이를 런타임에 Bean에 전달하는 방법 (0) | 2019.05.18 |
[SPRING] 누구든지 정확하게 알고 있습니까? javax.jms.InvalidDestinationException : 대상을 만들 수 없다는 것을 의미합니까? (0) | 2019.05.18 |
[SPRING] 테스트에서 여러 개의 스프링 부팅 응용 프로그램 인스턴스화 (0) | 2019.05.18 |
[SPRING] ConditionalOnExpression 평가 중에 PropertySource를 사용할 수 없음 (0) | 2019.05.18 |