java JAXWS使用特定于实现的API(如CXF)调用Web服务
是否可以在Java中调用web服务,而不使用JAX-WSAPI,而是使用特定的运行时实现API,如特定于CXF的API
当我使用JAX-WSAPI时,我的类路径上有Metro,这会导致问题,因此我想指定调用服务时动态使用的确切JAX-WSAPI实现
谢谢你
你可以在下面搜索框中键入要查询的问题!
是否可以在Java中调用web服务,而不使用JAX-WSAPI,而是使用特定的运行时实现API,如特定于CXF的API
当我使用JAX-WSAPI时,我的类路径上有Metro,这会导致问题,因此我想指定调用服务时动态使用的确切JAX-WSAPI实现
谢谢你
# 1 楼答案
最有可能的是,所有JAX-WS实现都有某种专有API,可用于创建使用其特定实现并绕过JAX-WS提供者发现机制的服务。在大多数情况下,发现的提供者很可能是这些API的包装器
对于客户端的CXF,这将是JaxWsProxyFactoryBean:
http://cxf.apache.org/javadoc/latest/org/apache/cxf/jaxws/JaxWsProxyFactoryBean.html
它可以用于从JAX-WS生成的接口创建代理对象
# 2 楼答案
您可以用普通XML构建请求,并执行SOAP请求。要构建XML结构,可以使用SoapUI,在这里可以导入WSDL,它为您提供XML输入结构。将其复制到java类中,在需要时附加请求参数并触发请求。您不需要任何Jax-WS-API。这种方法的唯一问题是需要为输入和输出编写XML解析器
[update]不同的解决方案
我使用JavaAPI来使用框架特性,但需要为给定的服务创建客户端JAR,并添加到类路径
如果您的服务如下所示
您可以从命令行使用
wsimport
(Java工具)创建客户机类,然后将它们放入jar并添加到类路径