是否可以创建Web服务,其中某些操作具有QUALIFIED元素而其他操作具有UNQUALIFIED?

时间:2016-01-16 14:35:44

标签: java web-services wsdl cxf jax-ws

同事,情况: 我有一个WSDL,我用它来使用CXF中的wsdl2java生成生成类并部署Web服务。在今天之前,Web服务运行正常。在请求中,每个属性都有一个前缀(据我所知,它意味着“合格”)。 今天我决定为“硬编码”客户端添加新操作。此客户端的一个特性是它要求元素的属性在请求中没有前缀(新)。 例如。客户端处理请求:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sin="http://my.comp/2010/webservice/Service" xmlns:new="http://www.webservice.namespace">
   <soapenv:Header/>
   <soapenv:Body>
      <sin:AuthData>
         <new:login>121212</new:login>
         <new:password>12121</new:password>
      </sin:AuthData>
   </soapenv:Body>
</soapenv:Envelope>

但没有合作:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sin="http://my.comp/2010/webservice/Service" xmlns:new="http://www.webservice.namespace">
   <soapenv:Header/>
   <soapenv:Body>
      <sin:AuthData>
         <login>121212</login>
         <password>12121</password>
      </sin:AuthData>
   </soapenv:Body>
</soapenv:Envelope>

newlogin元素中没有标记password

问题:

是否可以创建Web服务,其中某些操作具有前缀和操作的所有元素,其中元素没有前缀?

如何实现这一点:正确的WSDL,正确的CXF生成的类或其他什么?

我尝试更正了课程package-info.javaelementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED - &gt; elementFormDefault = javax.xml.bind.annotation.XmlNsForm.UNQUALIFIED),但在这种情况下,所有元素的所有前缀都会被删除。我会很高兴任何建议。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

看起来,将我希望没有前缀(不合格)的类移到另一个包中会有所帮助。