I have a existing SOAP service which is working fine. So, I have to make changes to read specialHeader
. I have created my own handler implementation for SOAPHandler<SOAPMessageContext>
and then have to register in the endpoint. As you can see below I have added jaxws:handlers
section but my web service now thrown an error.
<jaxws:endpoint id="serviceWS"
implementor="#beanWS" address="/service">
<jaxws:inInterceptors>
<bean class="customInterceptor">
<constructor-arg index="0">
<map>
<entry key="action" value="UsernameToken" />
<entry key="passwordType" value="PasswordText" />
</map>
</constructor-arg>
<constructor-arg index="1" type="String" value="${username}" />
<constructor-arg index="2" type="String" value="${password}" />
</bean>
</jaxws:inInterceptors>
<jaxws:handlers>
<ref bean="customHandler" />
</jaxws:handlers>
</jaxws:endpoint>
Service throw me this error:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"/>
<soap:Body>
<soap:Fault>
<faultcode>soap:Server</faultcode>
<faultstring>No binding operation info while invoking unknown method with params unknown.</faultstring>
</soap:Fault>
</soap:Body>
</soap:Envelope>
I can see that interceptor and handler can be executed. After that the service throw an error. Also, I have been testing just with the handler and my service run ok. Can inInterceptors
and handlers
work together? or are there any special trick?