您可以按照您提到的那样修改 WSDL,以指示需要寻址(尽管我会要求第 3 方这样做,如果他们的端点确实需要它..)。请参见规范中的示例 3-1 和 3-2 。您可能需要重新生成您的客户端(wsimport);我不确定。
如果您想以编程方式完成此操作,您可以尝试获取您的端口并传递 a javax.xml.ws.soap.AddressingFeature
,如下所示:
import javax.xml.ws.soap.AddressingFeature;
...
//however you are obtaining your service -
//perhaps @WebServiceRef or instantiation with WSDL location, etc
HelloWorldService service = ...
...
//true,true means enable Addressing, and indicate it is required
HelloWorld port = service.getHelloWorldPort(new AddressingFeature(true, true));
... call operations/methods on HelloWorld port
AddressingFeature的javadoc也可能会产生更多的见解。