Java SpringWebServices向Soap请求添加元素
在我的java项目中,我使用SpringWebServices向供应商提供的端点发送xml消息。(他们要求我们这样做) 然而,我注意到我的一个请求失败了。通过将请求发布到request-bin进行进一步分析,我注意到某些元素正在以soap-ENV前缀添加到我的soap消息中 我的问题是——是否可以使用SpringWebServices,但不将这些额外的元素添加到我的soap消息中 调用Web服务的代码 public void callWebservice(字符串corpId){ } 我要发送的XML消息Java SpringWebServices向Soap请求添加元素,java,spring,web-services,soap,Java,Spring,Web Services,Soap,在我的java项目中,我使用SpringWebServices向供应商提供的端点发送xml消息。(他们要求我们这样做) 然而,我注意到我的一个请求失败了。通过将请求发布到request-bin进行进一步分析,我注意到某些元素正在以soap-ENV前缀添加到我的soap消息中 我的问题是——是否可以使用SpringWebServices,但不将这些额外的元素添加到我的soap消息中 调用Web服务的代码 public void callWebservice(字符串corpId){ } 我要发送的X
<retrieve:retrieveEntities xmlns:retrieve="http://www.test/2009/04/retrieve">
<retrieve:mappingVersion>http://www.test.com/2009/04</retrieve:mappingVersion>
<retrieve:query>
</retrieve:query>
<retrieve:attributes />
</retrieve:retrieveEntities>
http://www.test.com/2009/04
请求箱中的消息
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<retrieve:retrieveEntities xmlns:retrieve="http://www.test/2009/04/retrieve"><retrieve:mappingVersion>http://www.test.com/2009/04</retrieve:mappingVersion><retrieve:query/>
<retrieve:attributes/>
</retrieve:retrieveEntities>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
http://www.test.com/2009/04
谢谢
Damien您正在调用的web服务不是SOAP web服务,而是一个简单的基于XML的web服务。默认情况下,
WebServiceTemplate
假定您正在发送SOAP消息,因此会创建一个SOAP消息
如果不想发送SOAP消息,则需要配置WebServiceTemplate
以发送普通XML消息。为此,将as消息工厂添加到WebServiceTemplate
。(根据您使用的WebServiceGateway
基类的代码判断
<bean id="yourGateway" class="your class">
<property name="messageFactory">
<bean class="org.springframework.ws.pox.dom.DomPoxMessageFactory" />
</property>
</bean>
另请参阅参考指南。SOAP的全部要点是添加了SOAP信封和标头。如果删除了SOAP部分,则不再有SOAP web服务。我完全理解您的观点,但遗憾的是,供应商不支持这样的信封和标头,那么它就不是SOAP web服务,那么就不要将其作为邮件发送SOAP。将您的web服务模板配置为使用
DomPoxMessageFactory
而不是SoapMessageFactory
(这是默认设置)。这就成功了-干杯
<bean id="yourGateway" class="your class">
<property name="messageFactory">
<bean class="org.springframework.ws.pox.dom.DomPoxMessageFactory" />
</property>
</bean>