繁体   English   中英

如何使用Apache CXF作为客户端?

[英]How to use Apache CXF as client?

我知道如何使用Apache CXF生成客户端存根。 但是,当我尝试运行生成的类时,它使用JAXWS。 另外,我注意到生成的类的导入类来自javax包。 如何使用set生成的类来使用Apache CXF库而不是JAXWS库?

以下是我用于生成客户端存根的代码:

wsdl2java -frontend jaxws21 -wsdlLocation "META-INF/wsdl/WSCustom.wsdl" -client -d C:\Workspace\WSClient\META-INF\wsdl\ "C:\Workspace\WSClient\META-INF\wsdl\WSCustom.wsdl"

存根是正确的,它们中不应包含任何特定于CXF的导入,因为可以使用JAX-WS标准注释来表示CXF所需的所有信息。 在运行时,如果CXF客户端库位于类路径上,则将使用它们;如果CXF不可用,则将使用内置于JDK的RI库。 生成的存根都可以使用。

您在注释中询问是否仅在运行客户端需要哪些CXF JAR-据我所知,这只是cxf-rt-frontend-jaxwscxf-rt-transports-http及其传递依赖项。 如果您的项目是使用maven构建的,则只需声明这两个依赖关系,其他所有内容都应自动输入,否则请下载Apache Ivy主JAR ,然后运行

java -jar ivy-2.3.0.jar -dependency org.apache.cxf cxf-rt-frontend-jaxws 2.7.3 -retrieve "[artifact]-[revision](-[classifier]).jar"
java -jar ivy-2.3.0.jar -dependency org.apache.cxf cxf-rt-transports-http 2.7.3 -retrieve "[artifact]-[revision](-[classifier]).jar"

这应该解决传递依赖关系,并将相关的JAR从Maven Central下载到当前目录中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM