存根是正确的,其中不应该有任何特定于 CXF 的导入,因为 CXF 需要的所有信息都可以使用 JAX-WS 标准注释来表示。在运行时,如果 CXF 客户端库位于类路径上,则将使用它们;如果 CXF 不可用,则将使用 JDK 中内置的 RI 库。生成的存根将与其中任何一个一起使用。
您在评论中询问如果您只是在运行一个客户端,则需要哪些 CXF JAR——据我所知,这只是cxf-rt-frontend-jaxws
加上cxf-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 下载到当前目录。