0

我有一个网络服务,我正在使用Endpoint.publish("http://0.0.0.0:8080")

事情是JAX-WS 2.0 and 2.1受到NullPointerException执行时抛出的问题的影响endpoint.stop()

该问题已解决,2.2pom.xml由于java.lang.NoSuchMethodError: javax.xml.ws.WebFault.messageName()Ljava/lang/String;我使用的是java 1.6.

解决方法是在endorsed文件夹中添加一些库。但我想把它全部打包jar-with-dependencies。一个可执行的java jar。

这么说,如果你能帮助我,我将不胜感激:

Publishing the endpoint in 2.0 or 2.1 listening to all addresses (0.0.0.0)

或者

Configuring dependencies in maven to pack everything using 2.2.x 
but executable with JDK6

编辑:

需求是一个可交付的 jar。一个打包所有依赖项的 jar(到目前为止 2 个,大约 400k jar)。

但是,如果您认为使其工作的唯一方法是添加外部 shell 脚本,请也告诉我。

谢谢!

4

2 回答 2

2

可执行 jar 格式不允许 JAX-WS 替换所需的认可文件夹(Java WebStart 启动器显然也不允许)。

您需要使用可以即时构建和执行的“java”命令的东西。从这里开始的最好方法是最有可能寻找可以直接运行程序而无需安装的安装程序。

你到底需要做什么?


编辑:由于要求是一个可运行的 jar,您根本无法使用 JAX-WS 2.2 执行此操作 使用您所针对的 Java 版本的最新版本中存在的 JAX-WS 找到一种解决方法。

很高兴 JAX-WS 堆栈附带核心 Java 允许非常小的部署,但您无法轻松提供自己的痛苦。

请注意,您可以提供自己的 Java 5,但您需要带上自己的 Endpoint 实现。

于 2012-09-27T22:50:29.380 回答
0

是否需要使用 JAX-WS RI?您可以改用 CXF,它是一个很好的 JAX-WS 实现,并且不会遇到与 RI 相同的冲突问题。

编辑:您可以尝试使用 RI 生成类,但在部署中使用 CXF。JAX-WS 毕竟是一个规范,所以它应该可以工作......

于 2012-09-28T09:08:17.430 回答