java - Apache CXF - 向客户提供 SEI

标签 java web-services jax-ws cxf

对于要创建 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/

相关文章:

java - 网络服务测试

Java 服务器示例错误

java - Google App Engine - 数据存储 java.lang.IllegalArgumentException : entity is too big

java - 当我最小化框架时面板组件消失

c# - 如何在 JSON 中指定子类类型(在 REST Web 服务中)

php - 实现 Web 服务登录的最佳方式是什么?

database - 数据库和 Web 服务调用之间的速度差异是多少?

javax.xml.ws.WebServiceException : Failed to access the WSDL. 响应: '401: Unauthorized'

java - 由于 java.lang.NoClassDefFoundError 无法运行代码

java - 使输入参数成为强制 JAX-WS