我需要在WebSphere 8.5.5中开发和公开SOAP Web服务。我已经开发了一个Spring WS并部署在WAS 8.5.5服务器上[在隔离冲突的JAR并设置父级最后一个类加载之后]。一切正常,我可以毫无困难地部署/访问我的WAR文件。我使用的是Spring的4.1.0.RC2版本和Spring WS的2.2.1.RELEASE版本以及JDK 7。
问题是,当我登录WAS管理控制台并单击我的应用程序时,我没有看到显示“ Web服务属性”部分。我在服务 - >下看不到我的申请服务提供商也是如此。我向IBM提出了PMR,他们确认他们的Admin Function将扫描并仅查找 @Webservice 注释,而不是任何其他注释。找到 @Webservice 注释后,WAS会将应用程序标记为服务提供者。到目前为止我看到的所有Spring WS示例都使用了 @Endpoint 注释,我不确定为什么WAS没有认识到这一点。
我们必须在WAS中配置登录模块[以使用SAML令牌],并且Web管理员说只有在显示“ Web服务属性”部分时才能执行此操作。 IBM的响应使它看起来像应用程序问题,但我不确定在应用程序代码中还能做些什么。我不想修改我的代码以使用JAX-WS注释。我已经尝试使用' ibm-web-bnd.xml '和' ibm-web-ext.xml '以及我的WEB-INF文件夹中的实际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服务?请指教。
答案 0 :(得分:1)
由于没有任何其他后续操作 - 如果您的Web模块使用实现非EE Web服务的第三方框架,从应用程序服务器的角度来看,它仍然只是servlet和过滤器的集合,不是EE Web服务,服务器可以管理并提供集成。
您需要解决SAML问题而不将其附加到应用程序服务器中的Web服务器配置。