【问题标题】:Websphere 8.5 web services not deployed未部署 Websphere 8.5 Web 服务
【发布时间】:2013-08-01 14:25:05
【问题描述】:

我很难让 Web 服务在 Websphere 上运行。我有一个使用 JAXWS 注释 @WebService 定义的 Web 服务的 ejb-jar。然后将此 ejb-jar 打包到耳朵中。我已经成功地将耳朵部署到 Glassfish 上,并且能够访问我的 WebService。但是,当我尝试将同一个耳朵部署到 Websphere 8.5 中时,我看不到任何暴露的 WebService。我需要采取哪些步骤才能使这个耳朵在 Websphere 中工作?

我如何查看 Websphere 管理控制台中可用的 Web 服务?

谢谢

【问题讨论】:

  • 你遇到过这个吗?
  • @AngeloNeuschitzer 我做到了。看我的回答。

标签: web-services websphere jax-ws


【解决方案1】:

我不使用 websphere 8.5,但在 websphere 7 中,您还需要一个额外的步骤才能使用soap/http(或 JMS)访问您的 Web 服务(实现为无状态 ejb) - 您必须使用 endptEnabler 工具。在部署到 WAS 之前,在您的 ear 文件中使用它。 websphere 8.5 上可能需要相同的过程。

在我的 websphere 7 安装中,该工具可以在 [WEBSPHERE]/AppServer/bin 目录中找到。只需在命令行上运行它并部署 ear。

【讨论】:

  • endptEnabler 用于 JAX-RPC 服务(据我所知)。 OP 询问了 JAX-WS。
  • endptEnabler 也用于 JAX-WS Web 服务,如果您将它们实现为无状态 EJB 会话 bean - 如果您的 Web 服务被实现为 Web 项目(而不是 EJB),则不需要这样做跨度>
【解决方案2】:

如何查看 Websphere 管理控制台中可用的 WebServices?

这适用于不在 EAR 中的 WebModule(例如,直接部署为战争)。 如果将WebService部署为EAR的Module:卸载EAR,单独部署war,按照以下步骤,最终URL相同。

  1. 打开管理控制台并登录
  2. 安文顿根
  3. Geschäftsanwendungen
  4. 打开 Web 应用程序
  5. 在右侧有一个区域“Web-Service-Eigenschaften”
  6. 有链接“WSDL-Dateien veröffentlichen”打开它。
  7. 下载 zip 文件。
  8. 您将在其中找到此模块中所有活动 Web 服务的 wsdl。
  9. 在 WSDL 中,您可以找到一个条目 <soap:address location=,您就有了您的 WebService。

我注意到,如果我自己不提供 .wsdl 文件,这将不起作用。不过,我还没弄清楚为什么会这样。因此,如果您正在执行此步骤但没有“Web-Service-Eigenschaften”块,那么在这场战争中没有可用的 Web 服务(从 WebSphere 的角度来看)。在您的项目中为您的 Web 服务创建一个 .wsdl 文件并使用 .war 进行部署。

【讨论】:

    【解决方案3】:

    要查看 WebSphere 单元中可用的 Web 服务,请从管理控制台中选择服务,然后选择服务提供者。

    如果您部署了一个包含 Web 服务的 EAR,但您看不到 Web 服务在 WAS 中可用,那么最好的办法是首先查看 WAS 日志(常规日志 + FFDC 日志)以查看可能WAS 在处理您的服务类时遇到问题(无论出于何种原因)。

    如果这没有帮助,您可以将 WAS 配置为为 JAX-WS 操作发出跟踪数据。

    当 WAS 没有处理我的 Web 服务类并且没有在其日志中写入任何关于它的内容时,我遇到了类似的问题。仅在设置跟踪后,我才发现问题出在哪里,可能与您遇到的问题相似:它与 WAS 尝试部署 JAX-WS 服务有关以下是正确的-

    1. EAR 包含 JAX-WS 服务的源代码;和
    2. EAR 不包含编译 Web Service 类(或Web Service 类直接使用的任何类)所需的所有类。

    说明:当您将 EAR 部署到 WebSphere 并指定应部署 Web 服务 (-deployws)当 EAR 包含您的应用程序的源代码时, WebSphere 玩得很聪明,继续尝试重新编译您的代码。为什么?打败了我,但它就是这样。如果 WebSphere 无法编译您的 JAX-WS Web 服务类 - 或您的 Web 服务类使用的任何类 - 它只会放弃,不向日志写入任何内容,并且根本不会部署您的服务。

    如果激活了 JAX-WS 跟踪,WebSphere 将记录到跟踪文件中的唯一位置。

    (我正在考虑为此与 IBM 开设 PMR,但当时我已经开设了大约 10 个 PMR...)

    【讨论】:

      猜你喜欢
      • 2015-04-14
      • 1970-01-01
      • 2020-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-29
      • 1970-01-01
      相关资源
      最近更新 更多