同事,情况: 我有一个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>
,new
和login
元素中没有标记password
。
问题:
是否可以创建Web服务,其中某些操作具有前缀和操作的所有元素,其中元素没有前缀?
如何实现这一点:正确的WSDL,正确的CXF生成的类或其他什么?
我尝试更正了课程package-info.java
(elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED
- &gt; elementFormDefault = javax.xml.bind.annotation.XmlNsForm.UNQUALIFIED
),但在这种情况下,所有元素的所有前缀都会被删除。我会很高兴任何建议。
感谢您的帮助。
答案 0 :(得分:0)
看起来,将我希望没有前缀(不合格)的类移到另一个包中会有所帮助。