此规则根据以下条件检测 JAX-RPC Web Service 是否存在:
- 文件 web-services.xml 的存在
- 同一文件夹中文件 weblogic-webservices.xml
和文件 webservices.xml 的存在
手册解决方案
要根据 WebLogic J2EE 网络服务部署描述符生成 JAX-RPC 网络服务,必须使用特定任务手动创建 Ant 脚本。 IBM® Ant 任务手动创建脚本。 如果 IBM Ant 生成的文件不存在,则应将脚本添加到项目的根文件夹中。 这些任务将 处理根据部署描述符生成 JAX-RPC 网络服务的工作。
规则属性
您必须为规则属性提供正确的值,以确保分析结果准确无误。 这些属性应 并根据应用程序的上下文进行适当配置。 此规则的属性如下:
- 所生成 Ant 脚本的名称:
指定新生成的 Ant 脚本的名称。脚本名称必须是有效的文件名。 名称必须是有效的文件名。 该值不得包含任何正反斜线。 脚本将放在项目的根文件夹中。
缺省值:build-ibm-ws.xml
- 生成文件夹名称:
指定生成工件将位于其中的文件夹的名称。该值不能包含任何正斜杠或反斜杠。 生成文件夹将位于项目的根文件夹中。
缺省值:ibm-ws-gen
Ant 类路径
ant 类路径是从 Eclipse 项目计算的。
验证对于编译必需的所有元素是否都在
Eclipse 类路径上很重要。
web-services.xml 文件中定义的 JAX-RPC 服务
根据 web-services.xml 中定义的信息以及服务类型,会生成
Ant 脚本及用来表示 Web Service 端点接口的可能附加 Java 代码,以重新生成 JAX-RPC 服务。
- 受支持的组件
仅无状态会话企业 Bean (<stateless-ejb>) 和 Java® (<java-class>)
组件才能被识别并进行转换。
- 无状态 EJB 组件:
Enterprise JavaBeans (TM) (EJB) JAR 文件,该文件在 <ejb-link> 元素的路径属性中定义的 JAR 文件必须存在于项目中。 自动修复将 扫描 EJB JAR 文件,并根据 EJB 远程类生成一个新的服务端点接口 (SEI) 类。 (SEI) 类。
SEI 接口与 EJB 远程接口不同,因为该类必须扩展
java.rmi.Remote
,并且每个方法都必须抛出异常,
java.rmi.RemoteException
.
Java 自动修复将在 EJB 远程接口上的反射来生成新的 SEI 。
因此,请确保 Eclipse 项目的类路径包括 所需的所有必要类、JAR 文件和目录。 以成功加载 EJB 远程类。
SEI 必须在生成文件夹内的 sei 文件夹中生成。 用户在规则中提供的生成文件夹中生成。 properties. SEI包与EJB远程接口包相匹配,SEI名称将与EJB远程接口名称相同。 包相匹配,SEI 名称将与 EJB 远程接口相同 此外,新的 SEI 文件夹将被添加到项目类路径中。 会被添加到项目类路径中。
- Java 类组件:
与 EJB 组件类似,自动修复将从属性 <class-name> 中定义的 类生成一个服务端点接口。 从属性 <class-name> 中定义的 Java 类生成服务端点接口。
- 所生成 Ant 目标:
生成的 Ant 脚本包含以下目标 生成 WSDL 文件和 JAX-RPC 服务。 生成 WSDL 文件和 JAX-RPC 服务的目标。
WSDL 生成目标将具有名称 genWSDL_ssss,其中 ssss
是 <web-service> 元素的 name 属性字段中提供的
JAX-RPC 服务的名称。
服务生成目标具有名称 genService_pppp,其中 pppp
是组件的名称,该名称来自元素 <stateless-ejb> 或
<java-class> 的 name 属性。
自动修复不会使用其他元素(如 中提供的信息,如 <处理程序链>、<类型>、<操作>、<安全> 等、 <操作>、<安全性> 等。
webservices.xml 文件中定义的 JAXRPC 服务
根据 webservices.xml 文件中定义的信息以及服务类型,会生成 Ant 脚本以重新生成 JAX-RPC 服务。
- 所生成 Ant 目标:
所生成 Ant 脚本包含用于生成 WSDL 文件和 JAX-RPC 服务的目标。
只有在以下情况下才会生成 WSDL 生成目标 元素中定义的 WSDL 文件时,才会生成 WSDL 生成目标、 <wsdl-file> 中定义的 WSDL 文件时,才会生成 WSDL 生成目标。
如果 WSDL 生成目标已创建,那么它具有名称
genWSDL_ssss,其中 ssss 是服务的名称(如元素
<webservice-description-name> 中所定义)。
服务生成目标将具有名称 genService_pppp,其中 pppp
是端口的名称(如元素 <port-component-name> 所定义)。
IBM WebSphere Application Server Ant 任务
WebSphere® Application Server 包含用于为 JAX-RPC 服务生成必要工件的 Ant 任务(例如 java2wsdl 和 wsdl2java)。 所生成
Ant 脚本使用这些任务来构建服务。
有关这些任务的其他信息可从
WebSphere Application Server 文档获取。
运行 Ant 脚本
制作完成 Ant 脚本后,请查看该脚本,并在必要时添加其他自定义功能。
请参阅 Application Server 文档,以了解 IBM Ant 任务的其他定制。
必须使用 WebSphere Application Server 随附
的 Ant 工具来运行该脚本。 可以从以下位置运行 IBM Ant 脚本
:
- Windows® 操作系统上的 WAS_HOME\bin\ws_ant.bat
- UNIX® 操作系统上的 WAS_HOME\bin\ws_ant.sh
例如:c:\IBM\AppServer\bin\ws_ant.bat -f
c:\eclipse\MyProject\ibm-ws-gen.xml genService_TestService
在 Ant 目标运行之后,产生的工件会位于生成文件夹中。接着,用户可检查所生成代码以及部署描述符,然后将这些工件添加至其模块。