에서 웹 서비스 문제 HI ALL
내가 내 서비스 개체
을 초기화하기되지 않는 한 문제에 직면하고 스프링 웹 서비스를 노출하는 것을 시도하고있다 ------------- --end 포인트 클래스 --------------
봄 - 인스턴스화
import org.springframework.ws.server.endpoint.AbstractMarshallingPayloadEndpoint;
import com.mt.service.CalculatorService;
public abstract class AbstractCalculatorEndpoint extends AbstractMarshallingPayloadEndpoint {
protected CalculatorService calculatorService;
public void setCalcService(CalculatorService calculatorService) {
this.calculatorService = calculatorService;
}
protected abstract Object invokeInternal(Object request) throws Exception;
}
----------- AddNumberEndpoint 클래스 ----- -------
package com.mt.endpoint;
import com.mt.calculator.schema.AddNumberRequest;
public class AddNumberEndpoint extends AbstractCalculatorEndpoint {
@Override
protected Object invokeInternal(Object request) throws Exception {
AddNumberRequest addNumberRequest = (AddNumberRequest) request;
if(calculatorService==null)
System.out.println("------------------- I AM NULL ------- :( ");
return calculatorService.addTwoNumber(addNumberRequest.getFirstNumber(),
addNumberRequest.getSecondNumber());
}
}
내 서블릿 구성
<?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:oxm="http://www.springframework.org/schema/oxm"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/oxm
http://www.springframework.org/schema/oxm/spring-oxm-1.5.xsd">
<bean id="calculatorService" class="com.mt.service.CalculatorServiceImpl"
init-method="initialize" />
<bean id="Calculator"
class="org.springframework.ws.wsdl.wsdl11.DefaultWsdl11Definition">
<property name="schema" ref="schema" />
<property name="portTypeName" value="Calculator" />
<property name="locationUri" value="/services" />
<property name="targetNamespace" value="http://www.mt.com/calculator/schema" />
</bean>
<bean id="schema" class="org.springframework.xml.xsd.SimpleXsdSchema">
<property name="xsd" value="/WEB-INF/calculator.xsd" />
</bean>
<bean id="validatingInterceptor"
class="org.springframework.ws.soap.server.endpoint.interceptor.PayloadValidatingInterceptor">
<property name="xsdSchema" ref="schema" />
<property name="validateRequest" value="true" />
<property name="validateResponse" value="true" />
</bean>
<bean id="loggingInterceptor"
class="org.springframework.ws.server.endpoint.interceptor.PayloadLoggingInterceptor" />
<oxm:jaxb2-marshaller id="marshaller"
contextPath="com.mt.calculator.schema" />
<oxm:jaxb2-marshaller id="unmarshaller"
contextPath="com.mt.calculator.schema" />
<bean id="addNumberEndpoint" class=" com.mt.endpoint.AddNumberEndpoint"
autowire="byName" />
<bean name="endpointMapping"
class="org.springframework.ws.server.endpoint.mapping.PayloadRootQNameEndpointMapping">
<property name="interceptors">
<list>
<ref local="loggingInterceptor" />
<ref local="validatingInterceptor" />
</list>
</property>
<property name="mappings">
<props>
<prop key="{http://www.mt.com/calculator/schema}AddNumberRequest">
addNumberEndpoint</prop>
</props>
</property>
</bean>
<bean id="exceptionResolver"
class="org.springframework.ws.soap.server.endpoint.SoapFaultMappingExceptionResolver">
<property name="defaultFault" value="SERVER" />
<property name="exceptionMappings">
<props>
<prop key="org.springframework.oxm.ValidationFailureException">CLIENT,Invalid request</prop>
<prop key="com.mt.service.CalculatorException">SERVER</prop>
</props>
</property>
</bean>
</beans>
Plese는 다른 정보가 필요하면 알려주세요
고마워
고마워
이전 예외 내가 때문에 (
--------
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>SOAP-ENV:Server</faultcode>
<faultstring xml:lang="en">JAXB marshalling exception; nested exception is javax.xml.bind.MarshalException
- with linked exception:
[com.sun.istack.SAXException2: unable to marshal type "java.lang.Integer" as an element because it is missing an @XmlRootElement annotation]</faultstring>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
에서
setCalculatorService(...)
에변경
setCalcService(...)
당신은 질문을하지 않았습니다. 당신이 기대하는 행동은 무엇이며, 그 대신에 어떤 일이 일어나고 있습니까? –