我正在开发一个使用从供应商处获得的 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 中的文件。
有没有人有任何建议或经验这样做?