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

时间:2013-06-27 14:50:48

标签: java jax-ws

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

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

2 个答案:

答案 0 :(得分:2)

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

  1. 下载并将12个依赖项添加到您的本地仓库。

  2. 创建一个依赖于12个依赖项的Maven项目,并使用Maven "shade" plugin构建一个将12个JAR组合成一个JAR的“Uber Jar”。您可以在JAR中包含一个README文件来解释它的构造方式和原因。

  3. 构建Uber Jar文件。

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


  5. 坦率地说,我认为这是一种技术上较差的方法,但如果你的公司官僚机构难以上传,那就做你需要做的事。

答案 1 :(得分:1)

JAX-WS with Java 5将需要大量的库。无论您选择Metro,CXF,Axis还是其他任何东西,都应该如此。

我能想到的选择是:

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

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