【问题标题】:WebSphere 8.5.5 not recognizing Spring WS @Endpoint annotationWebSphere 8.5.5 无法识别 Spring WS @Endpoint 注释
【发布时间】:2016-04-25 14:31:01
【问题描述】:

我需要在 WebSphere 8.5.5 中开发和公开 SOAP Web 服务。我已经开发了一个 Spring WS 并部署在 WAS 8.5.5 服务器上[在隔离了冲突的 JAR 并设置了 parent-last 类加载之后]。一切正常,我可以毫无问题地部署/访问我的 WAR 文件。我正在使用 Spring 的 4.1.0.RC2 版本和 Spring WS 的 2.2.1.RELEASE 版本以及 JDK 7。

问题是,当我登录到 WAS 管理控制台并单击我的应用程序时,我没有看到“Web 服务属性”部分正在显示。我也没有在 Services -> Service Providers 下看到我的应用程序。我向 IBM 提出了 PMR,他们确认他们的管理功能将仅扫描并查找 @Webservice 注释,而不是任何其他注释。一旦找到 @Webservice 注释,WAS 就会将该应用程序标记为服务提供者。到目前为止,我看到的所有 Spring WS 示例都使用了 @Endpoint 注释,我不确定为什么 WAS 无法识别这一点。

我们必须在 WAS 中配置登录模块 [使用 SAML 令牌],而网络管理员说只有在显示“Web 服务属性”部分时才能完成。 IBM 的响应使它看起来像是一个应用程序问题,但我不确定在应用程序代码中还能做什么。我不想修改我的代码以使用 JAX-WS 注释。我已经尝试在我的 WEB-INF 文件夹中使用 'ibm-web-bnd.xml' 和 'ibm-web-ext.xml' 以及实际的 WSDL,但没有成功.我还尝试将我的 WAR 打包到 EAR 中,但这没有帮助。我在 web.xml 中使用以下行:

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns="http://java.sun.com/xml/ns/javaee"
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
     id="WebApp_ID" version="2.5">

有人遇到过这个问题吗?要更改任何包装器代码或配置以使我的 WAR 模块在 WAS 8.5.5 中被识别为 Web 服务?请指教。

【问题讨论】:

  • “到目前为止,我看到的所有 Spring WS 示例都使用了 @Endpoint 注释,我不确定 WAS 为何无法识别这一点。” -- WAS 从它实现的 EE 规范中寻找注解,而不是从做类似事情的框架中寻找注解,这并不奇怪。

标签: soap websphere spring-ws


【解决方案1】:

由于没有任何其他后续行动——如果您的 web 模块使用实现非 EE web 服务的第三方框架,从应用程序服务器的角度来看,它仍然只是 servlet 和过滤器的集合,而不是 EE web 服务服务器可以管理和提供集成。

您需要解决您的 SAML 问题,而无需将其附加到应用程序服务器中的网络服务器配置。

【讨论】:

  • 感谢召集人!!我想知道如何在 WebSphere 中为 Web 模块设置 SAML 消费[想象我有一个普通的 Web 应用程序,我需要配置 WAS]。我也想过使用 WSS4J 拦截器。有什么想法吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-12-19
  • 2021-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-01
相关资源
最近更新 更多