JAX-WS 应用程序封装
可以将用于 XML Web Service (JAX-WS) 应用程序的 Java™ 应用程序编程接口 (API) 封装成 Web Service。JAX-WS Web Service 包含在 Web 应用程序归档 (WAR) 文件中或企业归档 (EAR) 文件的 WAR 模块中。
- WEB-INF/web.xml 文件
- 带注释的类,用于实现应用程序模块中包含的 Web Service
- [可选] 描述应用程序模块中包含的 Web Service 的 Web Service 描述语言 (WSDL) 文档。
<?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 注释信息。


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