为了在 WebSphere 单元中查看可用的 Web 服务,请从管理控制台中选择服务,然后选择服务提供者。
如果您部署了一个包含 Web 服务的 EAR,但您看不到 Web 服务在 WAS 中可用,那么最好的办法是首先查看 WAS 日志(常规日志 + FFDC 日志),看看 WAS 是否有一个处理您的服务类的问题(无论出于何种原因)。
如果这没有帮助,您可以将 WAS 配置为为 JAX-WS 操作发出跟踪数据。
我之前遇到过类似的问题,当时 WAS 没有处理我的 Web Service 类并且没有在其日志中写入任何关于它的内容。仅在设置跟踪后,我才发现问题出在哪里,这可能与您遇到的问题相似:它与 WAS 在以下情况下尝试部署 JAX-WS 服务有关 -
- EAR 包含 JAX-WS 服务的源代码;和
- EAR 不包含编译Web Service 类(或 Web Service 类直接使用的任何类)所需的所有类。
说明:当您将 EAR 部署到 WebSphere 并指定应该部署 Web 服务(-deployws
)时,当 EAR 包含您的应用程序的源代码时,WebSphere 会很聪明并继续尝试重新编译您的代码。为什么?打败了我,但它就是这样。如果 WebSphere 无法编译您的 JAX-WS Web 服务类 - 或您的 Web 服务类使用的任何类 - 它只会放弃,不向日志写入任何内容,并且您的服务根本不会被部署。
如果激活了 JAX-WS 跟踪,WebSphere 将把它记录到跟踪文件中的唯一位置。
(我正在考虑为此与 IBM 开设 PMR,但当时我已经开设了大约 10 个 PMR...)