如何配置JaxWsPortProxyFactoryBean以使用SOAP 1.2 Web服务

时间:2015-07-01 23:39:00

标签: java spring web-services soap

我需要使用JaxWsPortProxyFactoryBean

使用SOAP1.2(.NET托管)webservice

以下是我的Spring配置文件的片段:

<bean id="documentUploadServiceJaxwsClient"
    class="org.springframework.remoting.jaxws.JaxWsPortProxyFactoryBean"
    lazy-init="true">
    <property name="serviceInterface" value="org.tempuri.IDocumentUploadService" />
    <property name="namespaceUri" value="http://tempuri.org/" />
    <property name="serviceName" value="DocumentUploadService" />
    <property name="portName" value="secureBinding" />
    <property name="endpointAddress" ref="documentUploadServiceEndpointString" />
    <property name="customProperties" ref="internetProxyProperties"  />
    <property name="handlerResolver" ref="handlerResolver"/>
</bean>

我正在使用Spring 3.0.0。我不想通过CXF相关配置,因为这只是一个短期解决方案。

我也尝试使用SOAPHandler(脏解决方案),但Server不允许我在运行时更改SOAPEnvelope。 我使用的示例代码:

SOAPMessage sm = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL).createMessage(mimeHeaders, new ByteArrayInputStream(stream.toByteArray()));

context.setMessage(sm);

Websphere给了我以下内容:

  

引起:java.lang.IllegalArgumentException:WSWS4117E:尝试将SOAPEnvelope与SOAP 1.1协议的协议添加到SOAPMessage,并使用SOAP 1.2协议协议。

我也尝试设置customproperties,但没有帮助。

我需要等同于

的东西

<jaxws:binding> <soap:soapBinding version="1.2" mtomEnabled="true" /> </jaxws:binding>

但是使用JaxWsPortProxyFactoryBean 理想情况下,我希望通过简单的配置使其工作。

对此方面的任何帮助表示高度赞赏。

非常感谢

0 个答案:

没有答案