我使用 JAXWS-RI wsimport.bat 从具有命名空间“http://a.mydomain”的 WSDL 生成了一个 JAX-WS 客户端(代理 API)。
我想对具有命名空间“http://b.mydomain ”的服务重用相同的生成代理,但目标命名空间“http://a.mydomain ”在生成的所有类中都被硬编码。
有没有人知道使用 JAXWS-RI 或任何其他 JAXWS 实现来解决这个问题的任何好方法?我想防止使用新的 WSDL/命名空间重新生成代理类。
感谢您的任何回答。
最佳答案
步骤包括:
为此,您需要知道服务的 wsdl 位置、服务名称和 namespace URL。
例如
URL wsdlLocation = new URL("http://example.org/my.wsdl");
QName serviceName = new QName("http://example.org/sample", "MyService");
服务 s = Service.create(wsdlLocation, serviceName);
为此,您需要知道端点实现类名称。
例如MyService 端口 = s.getPort(MyService.class);
您现在可以通过代理调用方法。
根据您的要求更改 namespace URL。
关于web-services - 在生成的客户端中是否有任何支持动态命名空间的 JAX-WS 实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2501031/