快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19
。它们是:

ListAllBook:查询所有的图书信息;

ListByCategory:按类别查询图书信息;

BookDetail:查询某个特定名称的图书信息。

客户端是用Swing编写的GUI界面,使用界面如图5所示。

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

图5 客户端界面

客户端和服务端传输图书信息时采用例程1所示的格式。

例程1 传输图书信息的格式(book.dtd)

<!ELEMENT books(book*)> <!ELEMENT book (name,publisher,price,author+,category,description)> <!ELEMENT name (#PCDATA)> <!ELEMENT publisher (#PCDATA)> <!ELEMENT price (#PCDATA)> <!ELEMENT author (#PCDATA)> <!ELEMENT category (#PCDATA)> <!ELEMENT description (#PCDATA)> <!ATTLIST book id CDATA #REQUIRED>

这个信息包含在SOAP消息的Body里,按照这个格式,传输的SOAP消息结构如例程2所示。

例程2 传输的SOAP消息的格式(book.msg)

<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">    <soap-env:Header/>    <soap-env:Body>      <books:GetAllBooks xmlns:books="http://hellking.webservice.com">       <books:book id="2-1234-4455-4">    <books:name>J2EE企业应用开发</books:name>    <books:publisher>电子工业出版社</books:publisher>    <books:price>60</books:price>    <books:category>计算机类</books:category>    <books:description>非常好的介绍J2EE企业应用开发的书</books:description>    <books:author>陈亚强</books:author>    <books:author>刘晓华</books:author>     </books:book> </books:GetAllBooks>   </soap-env:Body> </soap-env:Envelope>

用JAXM开发Web服务(4)

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

为了传输数据的便利,我把图书信息用一个专门的值对象来表示,如例程3所示。

例程3 BookVO值对象

package com.hellking.webservice; import java.util.Collection; public class BookVO implements java.io.Serializable {   private String name;//图书名字   private String publisher;//图书出版社   private float price;//图书价格   private String isbn;//图书ISBN   private String description;//图书的简介   private String category;//图书的类别   private Collection authors;//图书的作者,因一本书可以有多个作者,故把它表示成Collection。 public void setName(String name)   {    this.name=name;   } public String getName()   {    return this.name;   } …其它的getter和setter方法

可以看出,BookVO其实是和例程1中的DTD是对应的。需要指出的是,BookVO可以使用JAXB(Java API for XML Binding)中的工具来生成。

EJB组件介绍

本案例使用了两个EJB组件,它们分别是BookEntityEJB和BookServiceFacadeEJB。其中BookEntityEJB是实体Bean,它代表了每本书的详细信息;BookServiceFacadeEJB为有状态会话Bean,它是一个会话门面,为JAXM Servlet提供业务服务。BookServiceFacadeEJB组件的远程接口如例程4所示。

例程4 BookServiceFacadeEJB组件的远程接口

package com.hellking.webservice.ejb; import java.rmi.RemoteException; import javax.ejb.*; public interface BookServiceFacade extends EJBObject {    /**    * @J2EE_METHOD -- getAllBook,查找所有的书    */    public java.util.Collec

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号