如何在java 5上以最少的外部依赖项运行jax ws?

如何在java 5上以最少的外部依赖项运行jax ws?,java,jax-ws,Java,Jax Ws,我希望在java-5环境中使用jax ws。JAXWSRT2.2.5承诺允许访问jax ws服务。然而,根据maven repository,这个工件依赖于大约12个其他工件。在我的企业中,有一些限制使得我们很难向企业回购协议中添加一个工件,而添加十几个工件要比只添加一个工件困难得多。由于这个问题,我想知道是否有一个更大的工件可以用来编写jax-ws-web服务客户机,而不需要任何其他依赖项 是否有一个捆绑的jax-ws-jar我可以使用,它有0个外部依赖项?jax-ws和Java 5需要大量的

我希望在java-5环境中使用jax ws。JAXWSRT2.2.5承诺允许访问jax ws服务。然而,根据maven repository,这个工件依赖于大约12个其他工件。在我的企业中,有一些限制使得我们很难向企业回购协议中添加一个工件,而添加十几个工件要比只添加一个工件困难得多。由于这个问题,我想知道是否有一个更大的工件可以用来编写jax-ws-web服务客户机,而不需要任何其他依赖项


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

jax-ws和Java 5需要大量的库。无论您选择Metro、CXF、Axis还是其他产品,这都应该是正确的

我能想到的选择是:

  • 如果可以的话,可以迁移到Java6——在大多数情况下,JAXWSRT2.2.1-1(来自org.glassfish.metro组)就足够了
  • 部署在内部和应用服务器(Jboss、Glassfish等)。一切都应该已经准备好了
  • 在战争中部署在servlet容器(Jetty、Tomcat等)内。依赖关系将与war隔离(ServletAPI2.5或更高版本)

其他任何事情都可能导致
lib文件夹的“污染”
/
类路径
,并且很可能导致
认可的
文件夹的“污染”。

有一种黑客方法可以做到这一点

  • 下载12个依赖项并将其添加到本地回购协议中

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

  • 构建Uber Jar文件

  • 提交Uber Jar文件以供批准



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

    如果您将其部署到完整的JavaEE容器(如JBoss),它可能已经具备了所需的所有依赖性,因此,不需要任何传统的jars.mvn程序集插件使用dependenciesThanks Stephen构建jar,我将尝试一下这个解决方案。感谢您的建议。我希望我能尽快升级到java 1.6,但我们计划在3个月内升级,我需要一个jax ws客户端在2周内启动并运行:)