快速业务通道

用JAXM开发Web服务 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19
tion getAllBook  () throws RemoteException;    /**    * @J2EE_METHOD -- findByCategory,按类别查找    */    public java.util.Collection findByCategory  (String category) throws RemoteException; /**    * @J2EE_METHOD -- getBookDetail  ,按名字查找    */    public java.util.Collection getBookDetail  (String name) throws RemoteException; }

可以看出,它提供了三个业务服务,分别是getAllBook(),findByCategory(String category),getBookDetail(String name)。这三个业务方法返回的都是java.util.Collection。其实,getBookDetail( String name )方法返回的应该是一个值对象,但是为了方便统一处理,也通过处理让它返回java.util.Collection类型,这一点以后的代码中体现出来。

在BookEntityEJB Home接口也提供了对应的查找方法,如例程5所示。

用JAXM开发Web服务(5)

时间:2011-02-07 IBM 陈亚强

例程5 BookEntityEJB的Home接口

package com.hellking.webservice.ejb; import java.rmi.RemoteException; import javax.ejb.*; public interface BookEntityHome extends EJBHome {    public BookEntity findByPrimaryKey  (String primaryKey)          throws RemoteException, FinderException;    public BookEntity create(String isbn) throws RemoteException, CreateException;    /**    * @J2EE_METHOD -- getAllBook,查找所有的书    */ public java.util.Collection findAllBook  ()          throws RemoteException, FinderException; /**    * @J2EE_METHOD -- findByCategory,按类别查找    */    public java.util.Collection findByCategory  (String category)          throws RemoteException, FinderException; /**    * @J2EE_METHOD -- getBookDetail  ,按名字查找   */ public BookEntity findByName  (String name)          throws RemoteException, FinderException; }

开发服务端

下面开发服务端,我们前面说过,服务端共有三个JAXM Servlet,它们分别提供三种不同的查询服务。

由于使用了点对点的消息模型,故服务端需要实现javax.xml.messaging. ReqRespListener接口,并且需要继承javax.xml.messaging.JAXMServlet类。javax.xml.messaging.JAXMServlet是一个Servlet,它为开发消息服务的Servlet提供了一个框架。需要指出的是,javax.xml.messaging. ReqRespListener接口定义了一个

public SOAPMessage onMessage (SOAPMessage message)

方法,故我们开发的JAXM服务端Servlet必须实现这个方法。 onMessage 方法就是当此Servlet接收到SOAPMessage时激发的方法,它通过此方法对外界提供服务(我们可以把这个方法简单的比喻成普通的HttpServlet中的doGet()、doPost()方法,HttpServlet正是通过doGet()、doPost()来为客户端提供服务)。

ListAllBook的部分代码如例程6所示。

例程6 ListAllBook的部分代码

public class ListAllBook extends JAXMServlet implements ReqRespListener {    public void init  (ServletConfig servletConfig) throws ServletException    {    super.init(servletConfig);    }    public SOAPMessage onMessage  (SOAPMessage message)    {   System.out.println("from ListAllBook Servlet:receive a message");   try   {   System.out.println("from ListAllBook Servlet:");   message.writeTo(System.out);//在控制台打印收到的消息        //调用其它类来实现

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号