jar之使用 CXF wsdl2java 将 wsdl 捆绑在 jar 中
lidabo
阅读:171
2025-06-02 22:19:02
评论:0
我正在研究一个将使用我从供应商那里获得的 wsdl 的实现。我们的项目在 Spring 和 CXF 上运行,我想创建一个 jar 来允许我访问该供应商的 wsdl 服务,但我遇到了类路径问题。
使用 CXF 的 wsdl2java 我能够生成这样的代码:
WSDL_LOCATION = new URL("file:SomeService.wsdl");
该服务要求 wsdl 位于类路径中,但我想将它捆绑在 jar 中,以便它可以作为独立的 jar 分发。使用 wsdl2java 工具,我可以将 URL 实例化中的字符串指定为我想要的任何内容。但是,我还没有在 jar 中找到自定义字符串和 wsdl 文件位置的组合。
我让它按照我的意愿工作的唯一方法是将 wsdl 文件放在 SomeService.class 所在的同一文件夹中,并使用以下行:
WSDL_LOCATION = TrackService.class.getResource("TrackService_v4.wsdl");
但是,这有我必须手动编辑 java 代码并自己编译的缺点。这是不可取的,因为我们最终希望将这个过程作为我们的 maven 构建的一部分,并让 wsdl2java 自己自动进行生成和编译。
我可以将 wsdl 放在 jar 中的任何位置,但我不知道要传递给 wsdl2java 以使其引用 jar 中的文件。
有没有人有任何建议或经验这样做?
请您参考如下方法:
我遇到了同样的问题 - 我有以下解决方法,但我仍在寻找更清洁的东西。
URL wsdlUrl = TrackService.class.getResource("/wsdl/TrackService_v4.wsdl");
TrackService service = new TrackService( wsdlUrl );
理想的解决方案是将位置作为
<wsdlLocation/> 传递。元素进入 CXF wsdl2java 插件。然后您的客户端代码可以调用默认构造函数。但是,生成的 stub 代码不允许您指定类路径上的 wsdl 文件。
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。



