2

我想在 java-5 环境中使用 jax-ws。jaxws-rt 2.2.5 承诺允许访问 jax-ws 服务。但是,根据 maven 存储库,该工件依赖于大约 12 个其他工件。在我的企业中存在一些限制,很难将工件添加到我们的企业存储库中,并且添加十几个工件比仅添加一个要困难得多。由于这个问题,我想知道是否有更大的工件可以用来编写 jax-ws Web 服务客户端,而无需任何额外的依赖项。

是否有一个捆绑的 jax-ws jar 我可以使用它具有 0 个外部依赖项?

4

2 回答 2

2

有一种方法可以做到这一点。

  1. 下载 12 个依赖项并将其添加到本地存储库。

  2. 创建一个依赖 12 个依赖项的 Maven 项目,并使用Maven “shade”插件构建一个“Uber Jar”,将 12 个 JAR 组合成一个 JAR。您可以在 JAR 中包含一个 README 文件来解释它是如何以及为什么构建的。

  3. 构建 Uber Jar 文件。

  4. 提交 Uber Jar 文件以供批准。


坦率地说,我认为这在技术上是一种低劣的方法,但是如果您的公司官僚作风使上传变得困难,那就做您需要做的事情。

于 2013-06-27T15:05:56.243 回答
1

带有 Java 5 的 JAX-WS 将需要大量的库。无论您选择 Metro、CXF、Axis 还是其他任何东西,这都应该是正确的。

我能想到的选项是:

  • 如果可以的话,迁移到 Java 6 - 在大多数情况下,jaxws-rt 2.2.1-1(来自 org.glassfish.metro 组)可能就足够了
  • 部署在内部和应用服务器(Jboss、Glassfish 等)。一切都应该已经存在
  • 在战争中部署在 servlet 容器(Jetty、Tomcat 等)中。依赖关系将被隔离到那场战争(servlet API 2.5 或更高版本)。

其他任何事情都可能会导致您的lib folder/classpath以及您的endorsed文件夹的“污染”。

于 2013-06-27T15:05:06.290 回答