JAX-WS 应用程序封装

可以将用于 XML Web Service (JAX-WS) 应用程序的 Java™ 应用程序编程接口 (API) 封装成 Web Service。JAX-WS Web Service 包含在 Web 应用程序归档 (WAR) 文件中或企业归档 (EAR) 文件的 WAR 模块中。

支持 JAX-WS 的 WAR 文件包括:
  • WEB-INF/web.xml 文件
  • 带注释的类,用于实现应用程序模块中包含的 Web Service
  • [可选] 描述应用程序模块中包含的 Web Service 的 Web Service 描述语言 (WSDL) 文档。
WEB-INF/web.xml 文件类似于以下示例:
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" xmlns=”http://java.sun.com/xml/ns/j2ee”
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
         http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" 
         version="2.4">
</web-app>

web.xml 可包含 Servlet 或 Servlet 映射元素。如果不需要对 web.xml 文件进行定制,那么会在装入模块时,WebSphere® Application Server 运行时会动态定义它们。有关配置 web.xml 文件的更多信息,请参阅有关在 JAX-WS 应用程序的 web.xml 文件中定制 Web URL 模式的信息。

带注释的类必须至少包含一个包括 @WebService 注释的 Web Service 实现类。与 Web Service 相关的注释的定义和规范由 JAX-WS 和 JSR-181 规范提供。Web Service 实现类可以存在于 WEB-INF/classes 目录中,也可以存在于 WAR 文件的 WEB-INF/lib 目录中包含的 Java 归档 (JAR) 文件中。

可以选择是否在 JAX-WS 应用程序封装中包括 WSDL 文档。如果省略特定 Web Service 的 WSDL 文档,那么 WebSphere Application Server 运行时将根据 Web Service 实现类中包含的注释动态构造 WSDL 定义。

从 WebSphere Application Server V7.0 开始,将扫描 Java EE 5 应用程序模块(Web 应用程序模块 V2.5 或更高版本,或者 EJB 模块 V3.0 或更高版本)以获取用于标识 JAX-WS 服务和客户机的注释。然而,缺省情况下,考虑到性能方面的因素,不会扫描 Java EE 5 之前的应用程序模块(Web 应用程序模块 V2.4 或更早版本,或者 EJB 模块 V2.1 或更早版本)来获取 JAX-WS 注释。在 V6.1 Feature Pack for Web Services 中,缺省行为是在安装应用程序期间扫描 Java EE 5 之前的 Web 应用程序模块以识别 JAX-WS 服务,以及扫描 Java EE 5 之前的 Web 应用程序模块和 EJB 模块以查找服务客户机。因为 WebSphere Application Server V7.0 和更高版本的缺省行为是不在应用程序安装或服务器启动期间扫描 Java EE 5 之前的模块以获取注释,所以为了保持与先前发行版中功能部件包的向后兼容性,您必须在 Web 应用程序归档 (WAR) 文件或 EJB 模块的 META-INF/MANIFEST.MF 中配置 UseWSFEP61ScanPolicy 属性,或在服务器上定义 Java 虚拟机定制属性 com.ibm.websphere.webservices.UseWSFEP61ScanPolicy 以请求在应用程序安装和服务器启动期间进行扫描。要了解有关注释扫描的更多信息,请参阅 JAX-WS 注释信息。

避免故障 避免故障: Web Service 应用程序部署期间,不会扫描实用程序 jar 以查找注释。 因此,如果 Web Service 打包在实用程序 jar 中,那么 Web Service 引擎无法检测到这些 Web Service。在此情况下,如果在应用程序服务器的配置设置中选择了根据需要启动组件选项,那么 Web Service 组件在启动应用程序服务器后无法启动,因为未检测到 Web Service。使用定制属性 com.ibm.websphere.webservices.StartWebServicesComponent 来避免此问题。gotcha
避免故障 避免故障: 强烈建议将任何第三方 Web Service 的服务端点接口 (SEI) 和实现类与应用程序/模块打包在一起。以此方式进行打包将确保 SEI 和实现类都对应用程序的类装入器可视,并防止发生异常,例如 EndpointInterfaceDescriptionImpl: 找不到为此类指定的超类

如果无法将 SEI 和实现类与应用程序/模块打包在一起,建议将包含这些类的 JAR 文件打包成隔离的共享库并使此共享库与应用程序/模块相关联。

gotcha

指示主题类型的图标 概念主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cwbs_jaxwsapp
文件名:cwbs_jaxwsapp.html