快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19
ax.rmi.PortableRemoteObject.narrow(objref, BookServiceFacadeHome.class);   System.out.println("call jboss======>>");   Collection result=facadeHome.create().findByCategory(category);//调用业务方法   System.out.println("get result======>>");   System.out.println(result.size());    // 使用BeanToSOAPEngine把调用结果转换成SOAP消息 otd.init(result,"GetAllBooks");   SOAPMessage ret=otd.getResult();   return ret;    }    catch(Exception e)    {     e.printStackTrace();     return null;    }   } …

用JAXM开发Web服务(7)

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

可以看出,XMLBusinessDelegate只是调用EJB组件的业务方法,然后把构建SOAP消息的任务交给BeanToSOAPEngine,BeanToSOAPEngine是负责把包含了BookVO 的Collection转换成SOAP消息的专门的类。BeanToSOAPEngine的部分代码如例程9所示。

例程9 BeanToSOAPEngine的部分代码

… public class BeanToSOAPEngine implements OTDEngine { Collection bookVos;//要处理的信息 SOAPMessage msg;//待返回的消息 String type;//type为返回消息的名字空间,如GetBookByCategory public BeanToSOAPEngine() {   try   {   MessageFactory mf = MessageFactory.newInstance();//获得MessageFactory的实例   msg = mf.createMessage();//从MessageFactory建立一个空的Message   }   catch(Exception ex)   {   ex.printStackTrace();   } } public void init() { this.bookVos=c;   this.type=type; } public SOAPMessage getResult() {   build();   return msg; } public void build() {   try   {      SOAPPart part = msg.getSOAPPart();      SOAPEnvelope envelope = part.getEnvelope();      SOAPBody body = envelope.getBody();        //创建body名字空间      Name bodyName=envelope.createName(type,"books","http://hellking.webservice.com" );    SOAPBodyElement books=body.addBodyElement(bodyName);//增加body //以下程序把Collection中的BookVO转化成SOAP消息 Iterator it=bookVos.iterator();     while(it.hasNext())     {     BookVO bookvo=(BookVO)it.next();         //构建book        Name bookName=envelope.createName( "book","books","http://hellking.webservice.com");    SOAPElement book=books.addChildElement(bookName);    book.addAttribute(envelope.createName("id"),bookvo.getIsbn());    //构建name Name elName=envelope.createName( "name","books","http://hellking.webservice.com");    book.addChildElement(elName).addTextNode(bookvo.getName());    //构建publisher    Name elPublisher=envelope.createName( "publisher","books","http://hellking.webservice.com");    book.addChildElement(elPublisher).addTextNode(bookvo.getPublisher());    //构建price    Name elPrice=envelope.createName( "price","books","http://hellking.webservice.com");    book.addChildElement(elPrice).addTextNode( new Float(bookvo.getPrice()).toString());         //构建category    Name elCategory=envelope.createName( "categ

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