对于要创建 Web 服务的 apache cxf 客户端的客户,如果他们使用 JaxWsProxyFactoryBean,则需要端点地址和 SEI 代码。关于提供端点地址没有问题,但是如何提供SEI?您只需将接口(interface)导出到 jar 中并将 jar 提供给客户吗?每次更改 SEI 时,都必须联系所有客户并重新提供 jar ?
我指的是下面示例中的 IDataService 接口(interface):
public static void main(String[] args) throws SomeException { JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); factory.getInInterceptors().add(new LoggingInInterceptor()); factory.getOutInterceptors().add(new LoggingOutInterceptor()); factory.setServiceClass(IDataService.class); factory.setAddress("http://localhost:8080/WSTest/services/dataService"); IDataService client = (IDataService) factory.create(); }
最佳答案
理想情况下,您应该只向他们提供服务的 WSDL - WSDL 应该是此处的契约(Contract),他们可以使用可用的任何工具生成自己的模板集 - wsdl2java 等。
如果客户端是您公司的内部客户,那么是的,您也可以创建一个仅包含接口(interface)、类型、消息的瘦项目,将其打包为 jar 并通过某个内部存储库提供该 jar,假设您的接口(interface)不会太频繁,即使发生变化,也会重新发布到内部存储库。
关于java - Apache CXF - 向客户提供 SEI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9762348/