ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:75.58KB ,
资源ID:9903863      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-9903863.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于J2EE的电子商务开发模型及其实现.docx)为本站会员(b****8)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

基于J2EE的电子商务开发模型及其实现.docx

1、基于J2EE的电子商务开发模型及其实现基于J2EE的电子商务开发模型及其实现学习如何使用 Publish 和 Subscribe MDB、IBM Rational Application Developer、IBM WebSphere Enterprise Service Bus、 Application Server Unit Test Engine,以及 IBM WebSphere Network Deployment 进行设计和开发随需应变的 J2EE 应用程序。这篇详细的指南包括了如何创建 MDB 并向其他 MDB 发布信息,并详细说明了如何从 IDE 直接将应用程序部署到应用程序服务

2、器网络基础结构中。介绍在 这样一个不断成长的 Java 世界中,期望与挑战日复一日的不断增加。每个人都希望站在不断变化的前沿,但是技术文章常常不能为我们提供开发者所需的细节内容。因此,本指南为您详尽展 示了如何开发、部署与运行随需应变的 Java 2 Platform Enterprise Edition(J2EE)应用程序。在这个过程中,您还会学到如何完成以下相关任务: 使用发布订阅 (PubSub) 消息 创建消息驱动 Bean(MDB)向其他 MDB 发布信息 使用 IBM WebSphere Enterprise Service Bus 在 IDE 中开发 Java Message S

3、ervice (JMS)代码 把来自您的 IDE 中的 IBM WebSphere Application Server 升级到 WebSphere Application Server network 直接从 IDE 中将应用程序部署到 WebSphere Application Server network 仅用 IDE(而不需要消息软件的许可证)开发、部署与测试 JMS 应用场景和设计概述我们已设计了一种基于实际生活的场景,这个场景易于理解并且易于关联到技术。它使用随需应变的方式在不同应用程序服务器之间交换信息。虽然有很多方法来编写软件,但是为了交换信息的目的,我们选择了发送消息的方式来

4、加以实现,因为它本身就拥有同步与异步的优势。在这个实践场景中,分布在不同区域的一家公司需要完成用户实际货物订单的要求。如果某个地点不能完成一个订单,则需要其他地方代替它完成。由于安全原因,不同地点的员工不能查看其他地点的数据库。每一地点的应用程序运行于本地的应用服务器,且仅对本地职员开放。 本场景只包括三个地点,但是您可以把这种设计应用于任何多的地点中。这种设计的美妙之处在于所有地点都可以通过不同项目名称使用相同代码库。设计细节在 下面的例子中,公司的三个地点通过 WebSphere Application Server Network Deployment network 的通用总线架构共享

5、数据。图1 使用不同颜色标记沿着信息路由的三个目的地,箭头表示信息流的方向。例如,来自 Region 1 的 Transfer Process bean 发送数据至 DESTINATION1,它在所有地点发送对于 Check Inventory MDB 的请求信息。图1描述的设计有如下假设: 每一地点拥有同一代码库的不同实例。 每一地点拥有自己的数据库。 每一地点拥有唯一的 Region ID,因此如果存货清单满足请求消息来自于相同的地点,则 MDB 不会处理此信息。图1. 消息流图如果 Region 1 想将一个订单传送给另一地点来执行,它需要发送 Java Message Service

6、消息至通用总线目的地,此目的地基于 WebSphere Enterprise Service Bus 技术,并运行于应用服务网络。所有监测通用总线目的地的 MDB 会采用 PubSub 技术报警或进行触发。在响应链中每个被触发的 MDB 会触发下一个 MDB。消息使用标准语言,如XML(您可以使用任何形式的语言作为标准,它取决于您的需要)。我们为每个功能分别创建了一个 topic,一个 destination,以及相应的 MDB: 一个被称为 TransferProcessBean 的会话bean,发送消息至 DESTINATION1 以下为所触发的3种 PubSub MDB:1. Check

7、InventoryMDB监测或 监听 DESTINATION1 并发送消息至DESTINATION2 2. CompleteRRTransferMDB(RR 表示 Requesting Region)监听 DESTINATION2 并发送消息至 DESTINATION3 3. CompleteARTransferMDB(AR 表示 Accepting Region)监听 DESTINATION3 在本例中,TransferProcessBean 消息使用如下格式(您的消息格式与内容可以不同,这取决于您的业务): 表1. 消息格式举例 01 ALL TRANSFER-REQUEST .add m

8、ore tags as per your business needs 当然,您可以根据您的业务需求增加更多不同的标签。一旦 CheckInventoryMDB 消息被发送,那么每个监听 DESTINATION1 的地点都会被触发响应。如果一个地点已有足够多的存货来满足用户订单,它会自动保留必需的条目,并发送一个其有足够存货满足此订单的响应。这些响应被发送 至DESTINATION2,并且 标签告知每一个地点的接受者,此消息是否为它们的地点所想要的。消息看起来基本上类似如下:表2. 消息格式举例 02 01 TRANSFER-RESPONSE Fill in your info/data wh

9、ether you can accept or not 一旦前一个消息在 DESTINATION2 中被发送,那么CompleteRRTransferMDB指令就会在每个地点中被触发。只有处于请求地点的 MDB 处理这个消息,因为它是基于 Region 标签值的。如果有多个地点可以满足此订单,那么请求地点的 MDB 只选择一个,并且相应地发送一个消息至 DESTINATION3。紧接着, 监听 DESTINATION3 的CompleteARTransferMDB被触发。它在存货存在的新地点中,根据其订单创建逻辑完成订单的创建。现在,订单传输完成了。此设计的重要优势在此设计中存在一些很关键的考

10、虑事项: 单一应用程序可以通过在不同地点的最小改变进行开发与部署。 当您增加了一个新地点,它就成为应用服务网络中的一部分,并且可以与其他地点以零代价交换消息。 无论其他地点发生什么,每个地点都会独立工作。 每个地点不需要知道网络中存在多少个其他地点。 每个地点不需要知道是否其他地点正在运行。 如果一个地点部署了 IBM WebSphere MQ,即使它不在线,消息也会在它再次上线时传递给它。实践训练现 在您已经理解了基本设计,您可以开始关注如何在 IDE 和应用服务器上使用它了。为了证明的需要,本例子使用 IBM Rational Application Developer 作为 IDE,IB

11、M WebSphereApplication Server Version 6.1 Unit Test Environment 作为应用程序服务器。 在您成功测试之后,您要使用 IBM WebSphere Application Server Network Deployment V6.1 作为应用程序服务网络。两者之间的区别是 WebSphere Application Server Unit Test Environment 只能运行一个应用程序服务器,而 WebSphere Application Server Network Deployment 可运行支持多地点的多个应用程序服务器。

12、您应能够在其他 IDE 和支持相似技术的应用程序服务器中实现相同的结果。WebSphere Application Server V6.1 拥有基本消息功能。 当您完成测试准备部署到生产环境时,一般的您会使用 JMS 产品作为生产环境,如 WebSphere MQ。创建会话 bean 和 MDB开始时创建一个会话 bean 和三个 MDB。为创建会话 bean:1. 打开 Rational Application Developer。2. 创建一个 J2EE 1.4 应用程序的 2.1 Enterprise JavaBeans (EJB) 项目。 3. 在 EJB 项目中, 创建一个被称为 T

13、ransferProcessBean的会话bean。您可以用来进行此项工作的方法之一是publishMessage1。它被编码以发送主题消息。您可以在看到writeYourLogicInThisMethod1的地方增加您的逻辑。表 3. 对会话 bean 的编码public void publishMessage1() TopicConnectionFactory topicConnectionFactory = null; TopicConnection topicConnection = null; Topic topic = null; TopicPublisher topicPubli

14、sher = null; TopicSession topicSession = null; String connectionFactoryName = java:comp/env/TCF1IdeRef; String topicName = java:comp/env/Topic1IdeRef; /Add your try, catch blocks Context ctx = new InitialContext(); topicConnectionFactory = (TopicConnectionFactory) ctx .lookup(connectionFactoryName);

15、 topicConnection = topicConnectionFactory.createTopicConnection(); boolean transacted = false; topicSession = topicConnection.createTopicSession(transacted, TopicSession.AUTO_ACKNOWLEDGE); topic = (Topic) ctx.lookup(topicName); topicPublisher = topicSession.createPublisher(topic); Message myOutgoing

16、Message1 = null; /Add your logic in writeYourLogicInThisMethod1 String myOutgoingTmpMessage1 = writeYourLogicInThisMethod1(); myOutgoingMessage1 = topicSession.createTextMessage(myOutgoingTmpMessage1.trim(); /Publish the Topic topicPublisher.publish(myOutgoingMessage1); topicPublisher.close(); topic

17、Session.close(); topicConnection.close(); 接着,创建三个 MDB: CheckInventoryMDB CompleteRRTransferMDB CompleteARTransferMDB 当您创建每个 MDB 时,选择: JMS type: javax.jms.MessageListener Transaction type: Container Activation configuration of destinationType: javax.jms.Topic Activation configuration of acknowledgeMo

18、de: Auto-acknowledge 当触发 MDB 时,被激活的方法是 onMessage。在writeYourLogicInThisMethod2中根据您的需要为每个 MDB 增加您的逻辑 。以下是 onMessage 方法的内容: Listing 4. The onMessage method public void onMessage(javax.jms.Message msg) String myIncomingMessage1; /Add your try, catch blocks. /Similar to Session Bean, make sure to declare

19、 JMS related stuffs and Close them once done / Read the incoming Message myIncomingMessage1 = (TextMessage) msg).getText(); /Add your logic in writeYourLogicInThisMethod2 String myOutgoingMessage2 = writeYourLogicInThisMethod2(myIncomingMessage1); / Publish the Message. Code publishMessage2 similar

20、to Session Bean publishMessage2(myOutgoingMessage2); 部署 JNDI 引用Java Naming 和 Directory Interface (JNDI) 属于 Java 平台的一部分。它给基于 Java 技术的应用程序提供一个多重命名与目录服务的统一接口。您需要一些 JNDI 来声明 MDB 监听器,这些是现在您需要做的。按照如下步骤编辑您的 EJB DD(配置描述符):1. 在 Bean 页签下,选择 CheckInventoryMDB。2. 在 WebSphere Bindings 页签下,选择 JCA Adapter。3. 对于 Ac

21、tivationSpec JNDI,输入 jms/AS1。4. 对于 Destination JNDI name,输入 jms/Topic1。5. 对于 CompleteRRTransferMDB,输入 jms/AS2 和 jms/Topic2。6. 对于 CompleteARTransferMDB,输入 jms/AS3 和 jms/Topic3。这意味着当一个消息在 jms/Topic1 中发送时,CheckInventoryMDB 会自动运行。相同的情况发生在jms/Topic2 与 CompleteRRTransferMDB 、jms/Topic3 与 CompleteARTransfe

22、rMDB中。声明消息目的地现在您准备为会话 bean 和 MDB 指定消息目的地。对于会话 bean:1. 在 EJB DD 中,进入 References 标签,选择会话bean。2. 按照如下步骤增加一个新的资源引用(Resource Reference) :o Name: TCF1IdeRefo Type: javax.jms.TopicConnectionFactory o Auth: Application o Share scope: Shareable 3. 还要按照以下步骤为主题消息增加一个新的资源参数: o Name: Topic1IdeRef o Type: javax.j

23、ms.Topic o Auth: Application o Share scope: Shareable 4. 然后,选择Topic1IdeRef。5. 在WebSphere Bindings下,通过键入 jms/Topic1更新 JNDI。 6. 类似的,为TCF1IdeRef键入jms/TCF01。对于 MDB,按照以下步骤替换或修改 TCF1IdeRef和 Topic1IdeRef : 对于 CheckInventoryMDB: TCF2IdeRef和 Topic2IdeRef 对于 CompleteRRTransferMDB: TCF3IdeRef 和 Topic3IdeRef 注意

24、: 记住 CompleteARTransferMDB 不发送任何消息; 它只是简单的监听 DESTINATION3。因此,您不需要为那个 MDB 增加引用。 开发前端现 在您已经建立起应用核心,您需要有一种机制引发能够触发其他 MDB 的会话 bean。我们有很多方式触发会话 bean。例如,通过 Java 类调用会话 bean,诸如 servlet 或 Faces JSP。假设您创建了包含命令按钮的 Faces JSP 。编辑 Faces JSP, 然后把会话 bean 拖到命令按钮上,这样点击按钮就可以触发会话 bean。定义应用服务器的 JMS 参数在 WebSphere Applica

25、tion Server Unit Test Engine 的消息引擎中您需要 JMS 引用。Rational Application Developer 是一份免费拷贝。下面是您必须配置的内容: Service integration bus Destinations Bus members Connection factories Activation specs注意:需要更多资料,请访问 WebSphere Application Server Version 6 Information Center 启动您的 WebSphere Application Server Unit Test

26、Environment,并进入 Admin Console。按照如下步骤键入 JMS 引用:1. 第一步:创建 WebSphere Enterprise Service Bus 通用总线1. 在Service Integration下,进入Buses 2. 创建以CommonBus1命名的新总线。 2. 第二步:创建总线目的地1. 在Buses下,进入CommonBus1/Destinations/New 2. 设置Select destination type 为 Topic space。 3. 设置Identifier 为DESTINATION1。 4. 选择Bus member 作为您的

27、服务器。 5. 重复第二步两次, 一次为 DESTINATION2 一次为 DESTINATION3。3. 第三步:创建 Bus members1. 在Service Integration下, 进入 Buses。 2. 通过选择您的结点和服务器为CommonBus1增加一个新总线成员。(例如: Node=pvtndserverNode01, Server=server1) 4. 第四步:创建 Topic Connection Factories、 Topics 和Activation Specs:注意:您将重复三遍第四步:3 TCFs、3 Topics、3 ActivationSpecs。第

28、二和第三遍的值在方括号 内。例如 TCF1WASref TCF2WASref, TCF3WASref。1. 在Resources JMS Providers Default messaging内。2. 选择您的结点和服务器。5. 4.1步: 创建 Topic Connection Factory。1. JNDI name: jms/TCF01 jms/TCF02 , jms/TCF032. Bus name: CommonBus1 3. Client identifier value: (example) client1 client2, client3 4. Durability Subsc

29、ription Home: 键入 .- (例如: pvtndserverNode01.server1-CommonBus1)5. Non-persistent message reliability:Assured persistent6. 4.2 步:为 Topic1WASref Topic2WASref, Topic3WASref 创建主题。1. JNDI name: jms/Topic1 jms/Topic2, jms/Topic3 2. Topic Name: Topic1IdeRef, 它应与TopicName Topic2IdeRef, Topic3IdeRef的值相同 3. Bu

30、s name: CommonBus1 4. Topic space: DESTINATION1 DESTINATION2, DESTINATION3 7. 4.3步:创建 activation spec。 例如: AS1WASref AS1WASref, AS3WASref. 1. JNDI name: jms/AS1 jms/AS3 , jms/AS3 2. Destination type: Topic 3. Destination JNDI name (与JMS Topic的JNDI 名称相匹配): jms/Topic1 jms/Topic2, jms/Topic3 4. Bus name:CommonBus1 5. Subscription durability: Durable 6. Subscription name:值的例子:sn1 sn2 , sn3 7. Client identifier:与您键入的TCF/client identifier名称一致。例如: client1 client2, client3

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2