快速业务通道

在业务流程中融合J2EE和.NET技术 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-18

右键单击 Services 并选择 Add Child>Service。

输入 SupplierAQuoteService 作为新服务名称并单击 OK。

右键单击 SupplierAQuoteService 并选择 Add Child>Port。

如图 5 所示,输入端口细节并单击 Finish。

图 4.指定绑定细节

在业务流程中融合J2EE和.NET技术 - 编程入门网

图 5.指定服务端口细节

在业务流程中融合J2EE和.NET技术 - 编程入门网

步骤 7. 实现 Web 服务

最后,您可以实现基于 SupplierAService.wsdl 和 SupplierASchema.xsd 的 Web 服务。WebSphere Studio 可以从 WSDL 生成 Skeleton Java bean Web 服务。

选择 File>New>Other>Web Services>Web service 并单击 Next。

在接下来的 Web Service 向导中,选择 Web 服务类型为 Skeleton Java bean Web Service。对其它域的保留缺省设置并单击 Next。

在接下来的窗口中,指定 SupplierAServiceEAR 为 Service project EAR,并指定 SupplierAServiceWeb 为 Service Web 项目。这是拥有 Java Web 服务的企业项目。单击 Next。

浏览到创建好的 SupplierAService.wsdl。单击 OK,单击 Next,然后单击 Finish。

检查 SupplierAServiceWeb 项目。可序列化的 Product 类由 SupplierASchema.xsd 中定义的复杂类型 Product 生成,且 Java Skeleton Web 服务也已构建。但是,这还只是有接口功能的空服务;接口操作 getQuote 的具体实现需要在 SupplierAQuoteServiceBindingImpl 中手工提供。

首先,添加构造函数至 Product 类。

清单 1.添加构造函数至 Product 类

public Product(String name, int qty, float price, boolean isRefurbished) {   this.set_name(name);   this.set_qty(qty);   this.set_price(price);   this.set_refurbished(isRefurbished); }

在业务流程中融合J2EE和.NET技术(5)

时间:2011-03-14

接下来,添加构造函数至 SupplierAQuoteServiceBindingImpl 类,用以对库存硬编码。实际上,您可能需要公开接口方法,例如 addInventory(Product item) 用来重新储存产品。

清单 2.添加构造函数至 SupplierAQuoteServiceBindingImpl 类

private static Hashtable fCurrentInventory = new Hashtable(); public SupplierAQuoteServiceBindingImpl() {   fCurrentInventory.put(     "IBM ThinkPad T40",     new Product("IBM ThinkPad T40", 200, 1499.99f, false));   fCurrentInventory.put(     "Dell Inspiron 4000",     new Product("Dell Inspiron 4000", 100, 999.99f, true));   fCurrentInventory.put(     "Toshiba Satellite 2210X",     new Product("Toshiba Satellite 2210X", 300, 599.99f, false)); }

用清单 3 中的代码替代 SupplierAQuoteServiceBindingImpl 类中的 getQuote 方法。

清单 3. 替代 getQuote 方法

public Product getQuote(java.lang.String productName)   throws java.rmi.RemoteException {   if (fCurrentInventory.containsKey(productName))     return (Product) fCurrentInventory.get(productName);   else     return new Product(productName, 0, 0f, false); }

Supplier A 的报价 Web 服务已经准备好,可以进行部署和运行了。在 BPEL 流程创建之前还不能对其进行测试。

创建 Supplier B 的 .NET Web 服务

对于 Supplier B 的 .NET Web 服务,schema 要更复杂一些:在其它复杂类型中再嵌套复杂类型数组。在编程语言中添加的这种复杂性并不十分奇怪,事实上是非常正常的事情。但是,它经常是导致 XML 消息序列化失败的起因。特别是,消息接受方通常不能匹配合适的 XML 序列化器类。:dateTime 也是 J2EE 和 .NET 间出现互操作性问题的常见根源。本

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