我有一个 wsdl,从中我使用 apache cxf 生成了服务器存根。问题是我部署的新 wsdl 与最初的不同,因此旧的肥皂请求不适用于新的。我使用soapUI对其进行测试。新的有这个奇怪的命名空间init:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:init="http://initiator.clientprovisioning_1_0.mdm.smarttrust.com/">
<soapenv:Header/>
<soapenv:Body>
<init:cpDiscovery.Response>
旧肥皂消息没有这个:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<cpDiscovery.Response>
我会提供任何需要的额外信息。我已经尝试解决这个问题 2 天了。请帮忙。
编辑 这个初始化前缀取决于java包的第一个字母。例如,如果类在 me.mycompany.example 中,前缀是:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:exam="http://example.mycompany.net/">
<soapenv:Header/>
<soapenv:Body>
<exam:cpDiscovery.Response>
编辑 http://cxf.apache.org/docs/developing-a-service.html#DevelopingaService-AnnotatingtheCode 这说明
targetNamespace 属性 指定定义服务的目标命名空间。如果未指定此属性,则目标命名空间派生自包名称。
我该如何摆脱这个?