如何在JAX-WS中更改SOAP请求前缀。在的handleMessage我更新setprofix方法更改JAX-WS中的SOAPRequest前缀
SOAPMessage msgs = ctx.getMessage();
SOAPMessage sm = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL).createMessage();
sm.getSOAPPart().getEnvelope().setPrefix("soap");
sm.getSOAPPart().getEnvelope().removeNamespaceDeclaration("env");
sm.getSOAPHeader().setPrefix("soap");
sm.getSOAPBody().setPrefix("soap");*/
但我仍得到了同样的要求
<?xml version="1.0"?>
<S:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"
我需要
<Soap:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"
请帮
你试图找到命名空间附上HandlerResolver实现你的Web服务客户端???尝试找到一个有点像setNamespace()的方法......它可能会有所帮助......为什么Soap需要而不是s,它只是一个命名空间...... – 2013-02-19 21:41:12
你的代码片段是正确的。刚刚使用Metro JAX-WS分发版进行测试2.2.1-1。您强调的JAX-WS实现可能是一个问题。你使用哪个Web服务库? – Florin 2013-02-20 15:53:36
我已经使用wsimport JDK 1.6提供的WSDL生成了代码。 build 27. – 2013-02-20 21:36:13