我遇到了JAX-WS(Java 1.6)如何生成要发送到远程服务器的soap消息的问题。我使用WSDL Import生成所有必需的类,但注意到当SOAP消息发送到服务器时,它会插入一个xmlns =""和xmlns:ns2 =" http:// somexmlnamespace"在嵌套节点上,如:
<?xml version="1.0" encoding="UTF-8"?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body xmlns="http://somexmlnamespace">
<ParentNode xmlns="http://somexmlnamespace">
<ChildNode xmlns="" xmlns:ns2="http://somexmlnamespace">
</ChildNode>
</ParentNode>
</S:Body>
</S:Envelope>
空白xmlns =&#34;&#34;导致我尝试连接的服务出现问题。如果我手动发布没有它的消息:
<ChildNode xmlns:ns2="http://somexmlnamespace">
</ChildNode>
肥皂消息响应是我所期望的。我怎么会让Java不发送xmlns =&#34;&#34;? XML注释中生成的类是否有修改,或者消息处理程序是否会修复此问题?
答案 0 :(得分:0)
在parentNode类中,将以下内容添加到getChildNode()方法: - @ XmlElement(namespace =“http:// somexmlnamespace”)
假设ChildNode位于名称空间http://somexmlnamespace中,原因是在ParentNode中指定了xmlns。
我假设是JAXB。如果这没有回答,因为@Koitoer已经说过提供生成的代码。