3

我正在尝试从 java 调用 Web 服务。我使用 JBoss 作为客户端应用程序服务器。Web 服务器是用 jax-ws 编写的,并在其他一些服务器上运行(我不知道)。

我的要求是从我在 JBoss 中运行的应用程序调用 Web 服务。经过足够的搜索,我发现 jax-ws 是一个标准,现在包含在 jdk 中。Metro 是 jax-ws 的参考实现,在 Glassfish 应用服务器中提供。

我的问题是: -
市场上还有其他 jax-ws 实现吗?
就像每个容器都提供自己的 Servlet API 实现一样,它们都提供 Jax-ws 的实现吗?
我需要将 Metro api 复制到我的 Jboss 应用程序吗?
JBossWS 在哪里发挥作用?
Web Service 主机提供的示例代码指定,客户端需要将身份验证令牌添加到 SOAPHeader,并且在示例代码中他们使用了 com.sun.xml.ws 包。
当我使用 MessageFactory 创建一个新的 SOAPMessage 时,它​​会使用 Metro RI 还是 JbossWS?
如果 Metro 是 glassfish 对 Jax-ws 的实现,那么它会在其他应用服务器上运行吗?

除此之外,我的应用程序还公开了另一个 Web 服务(尽管它使用 Axis 1)。

我对此感到有些困惑。

有人可以帮助我了解有关 jax-ws、Metro、JbossWS 的一些详细信息。他们每个人都站在哪里。

4

1 回答 1

0

JBossWS 是 JBoss Application Server 提供的 Web-Service 堆栈,是的,它也是 JAX-WS 标准的实现。据我所知,JBossWS 基于 Apache CXF。Glassfish 使用另一个 JAX-WS 实现,Metro。

为了与远程 WebService 通信(实现并不重要,只要它使用标准),您可以简单地使用 JAX-WS api 和任何为其提供实现的应用程序服务器。JBoss 可以,因此您只需按照 JAX-WS api 编写客户端(并且它应该在 JBoss 和 Glassfish 或任何其他符合 JAX-WS 的容器上运行)。

关于身份验证,您应该提供更多信息,因为这里的标准中有很多选项。

于 2013-02-10T19:12:26.313 回答