示例:为 Web Service 部署描述符配置处理程序类

本方案说明如何将客户机和服务器处理程序类添加到样本应用程序 WebServicesSamples.ear。当给定要处理的请求或响应时,处理程序类显示一些消息。

客户机处理程序类的代码在以下示例中有所说明:

package samples;

public class ClientHandler implements javax.xml.rpc.handler.Handler {
    public ClientHandler() { }

public boolean handleRequest(javax.xml.rpc.handler.MessageContext context) {
    System.out.println("ClientHandler: In handleRequest");
    return true; }

public boolean handleResponse(javax.xml.rpc.handler.MessageContext context) {
    System.out.println("ClientHandler: In handleResponse");
    return true; }

public boolean handleFault(javax.xml.rpc.handler.MessageContext context) {
    System.out.println("ClientHandler: In handleFault");
    return true;  }

public void init(javax.xml.rpc.handler.HandlerInfo config) {}

public void destroy() {}

public javax.xml.namespace.QName[] getHeaders() {
    return null; }
}

服务器处理程序类的代码在以下示例中有所说明:

package sample;
public class ServerHandler implements javax.xml.rpc.handler.Handler {
    public ServerHandler() { }

public boolean handleRequest(javax.xml.rpc.handler.MessageContext context) {
    System.out.println("ServerHandler: In handleRequest");
    return true; }

public boolean handleResponse(javax.xml.rpc.handler.MessageContext context) {
    System.out.println("ServerHandler: In handleResponse");
    return true; }

public boolean handleFault(javax.xml.rpc.handler.MessageContext context) {
    System.out.println("ServerHandler: In handleFault");
    return true; }

public void init(javax.xml.rpc.handler.HandlerInfo config) {}

public void destroy() {}

public javax.xml.namespace.QName[] getHeaders() {
    return null;  }
}
  1. 使用以下命令编译这些类:

    [Windows]%JAVA_HOME%\bin\java -extdirs %WAS_EXT_DIRS% ClientHandler.java ServerHandler.java

    [Linux][AIX][HP-UX][Solaris]$JAVA_HOME/bin/java -extdirs $WAS_EXT_DIRS ClientHandler.java ServerHandler.java

  2. 打开组装工具并导入这两个样本企业归档 (EAR) 文件:
    • [Windows]...\installableApps\WebServicesSamples.ear

      [Linux][AIX][HP-UX][Solaris].../installableApps/WebServicesSamples.ear

    • [Windows]...\installableApps\ApplicationClients.ear

      [Linux][AIX][HP-UX][Solaris].../installableApps/ApplicationClients.ear

  3. 将编译的处理程序类导入样本模块的项目中:
    • 将 sample.ClientHandler 导入 AddressBookClient 项目的 appClientModule 目录中。
    • 将 sample.ServerHandler 导入 AddressBookW2JE 项目的 ejbModule 目录中。
  4. 为处理程序类配置客户机部署描述符

    本主题说明如何为用户提供的处理程序类配置客户机部署描述符。

  5. 为处理程序类配置 webservices.xml 部署描述符

    本主题说明如何为用户提供的处理程序类配置 webservices.xml 部署描述符。

  6. 保存您的更改并导出 EAR 文件。
  7. 如果 WebServicesSamples.ear 应用程序已经安装,从您的服务器卸载。
  8. 安装新的 WebServicesSamples.ear 应用程序。
  9. 启动服务器。
  10. 运行客户机:

    launchClient ApplicationClients.ear -CCjar=AddressBookClient.jar

    当客户机运行时,控制台输出看上去与以下示例相似。来自处理程序的消息以粗体显示。

    	IBM WebSphere Application Server
    	J2EE Application Client Tool
    	Copyright IBM Corp., 1997-2003
    	WSCL0012I: Processing command line arguments.
    	WSCL0013I: Initializing the J2EE Application Client 
    	Environment.
    	WSCL0035I: Initialization of the J2EE Application Client 
    	Environment has completed.
    	WSCL0014I: Invoking the Application Client class 
    	com.ibm.websphere.samples.webservices.addr.AddressBookClient
    	>> Querying address for 'Purdue Boilermaker' using port 
    	AddressBookW2JE
    	ClientHandler: In handleRequest
    	ClientHandler: In handleResponse
    	>> Response is:
            1 University Drive
            West Lafayette, IN 47907
            Phone: (765) 555-4900
    	>> Querying address for 'Purdue Boilermaker' using port 
    	AddressBookJ2WE
    	ClientHandler: In handleRequest
    	ClientHandler: In handleResponse
    	>> Response is:
            2 University Drive
            West Lafayette, IN 47907
            Phone: (765) 555-4900
    	>> Querying address for 'Purdue Boilermaker' using port 
    	AddressBookJ2WB
    	ClientHandler: In handleRequest
    	ClientHandler: In handleResponse
    	>> Response is:
            3 University Drive
            West Lafayette, IN 47907
            Phone: (765) 555-4900
    	>> Querying address for 'Purdue Boilermaker' using port AddressBookW2JB
    	ClientHandler: In handleRequest
    	ClientHandler: In handleResponse
    	>> Response is:
            4 University Drive
            West Lafayette, IN 47907
            Phone: (765) 555-4900

    对于客户机,处理程序类是为每个服务引用而不是为每个端口配置的。AddressBook 样本有四个端口,但只有一个服务引用,因此 ClientHandler 在所有端口上处理请求和响应。

当检查服务器日志文件时,它包含以下数据:

[9/24/03 16:39:22:661 CDT] 4deec1c6 WebGroup      I SRVE0180I: 
[HTTP router for AddressBookW2JE.jar] [/AddressBookW2JE] [Servlet.LOG]: 
AddressBook: init
[9/24/03 16:39:23:161 CDT] 4deec1c6 SystemOut     O ServerHandler: In handleRequest
[9/24/03 16:39:23:211 CDT] 4deec1c6 SystemOut     O ServerHandler: In handleResponse

结果

已为处理程序类配置部署描述符。部署描述符是必需的,以便 WebSphere® Application Server 可处理入局 Web Service 请求。

下一步做什么?

部署已配置并为 Web Service 启用的 EAR 文件。接着您可测试此应用程序以确保它在 WebSphere Application Server 环境中运行。


指示主题类型的图标 参考主题



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