我们的java应用程序使用glassfish 2.1作为服务器,我将ear文件部署到glassfish上,并使用soapUI发送请求,并期望在响应中返回soapFault。 但我得到了#34; HTTP状态500"相反,看了服务器日志后我发现了以下内容:
引起:com.sun.xml.stream.XMLStreamException2:xmlns已经绑定到。将其重新绑定到mysite.com是一个错误
检查调试日志,我发现message标签中有一个奇怪的空命名空间,它是myException的子节点。知道这是怎么回事。
<ns2:Fault xmlns:ns2="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns3="http://www.w3.org/2003/05/soap-envelope">
<faultcode>ERROR</faultcode>
<faultstring>Validation Errors</faultstring>
<detail>
<myException:myException xmlns:myException="mySite.com" xmlns="mySite.com" xmlns:ns2="wsdl.com">
<message xmlns="" xmlns:ns7="mySite.com" type="ERROR">
<ns7:code>code_123</ns7:code>
<ns7:description>Fault Description</ns7:description>
</message>
.............
答案 0 :(得分:0)
我通过修改attributeFormDefault =&#34; qualified&#34;修复了这个问题。的xsd文件。这将为每个属性分配targetNamespace。在这种情况下,glassfish不会感到困惑,然后放置一个空名称空间。
不确定此解决方案可以帮助其他人,但这可以解决我的问题。