SoapFault子节点中的xmlns =""(空)命名空间

时间:2014-03-23 09:27:21

标签: java soap glassfish

我们的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>
.............

1 个答案:

答案 0 :(得分:0)

我通过修改attributeFormDefault =&#34; qualified&#34;修复了这个问题。的xsd文件。这将为每个属性分配targetNamespace。在这种情况下,glassfish不会感到困惑,然后放置一个空名称空间。

不确定此解决方案可以帮助其他人,但这可以解决我的问题。