跟我学EJB 分布式编程技术——EJBWebService相关技术及实例

更新时间:2023-05-23 06:06:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

EJB规范的主要目的是将企业应用系统开发人员从应用系统级的编程工作中解脱出来,使之可以集中精力进行应用系统中商务规则的系统分析和代码编写工作。按照EJB2.0规范的定义,EJB组件由Home接口、Remote接口、组件类和部署描述文件构成。应用程序开发人员在编写EJB组件的代码时,必须完整定义组件的各个接口、组件类以及描述组件需要EJB容器提供服务的部署描述文件。

目 录

1.1 跟我学EJB 分布式编程技术——EJBWebService相关技术及实例 ........................ 2

1.1.1 EJB作为Web服务端点技术概述 ......................................................................... 2

1.1.2 实现的主要过程及相关技术要点 .......................................................................... 3

1.1.3 创建一个SessionBean组件 ................................................................................... 4

1.1.4 在该EJB组件中添加成员WebService的方法 .................................................... 6

1.1.5 将该EJB发布为WebService的组件 .................................................................... 7

1.1.6 对客户和服务器进行设置 .................................................................................... 14

1.1.7 发布该EAR文件 .................................................................................................. 18

1.1.8 在客户端程序中使用该Webservice EJBBean中的方法 ................................... 22

EJB规范的主要目的是将企业应用系统开发人员从应用系统级的编程工作中解脱出来,使之可以集中精力进行应用系统中商务规则的系统分析和代码编写工作。按照EJB2.0规范的定义,EJB组件由Home接口、Remote接口、组件类和部署描述文件构成。应用程序开发人员在编写EJB组件的代码时,必须完整定义组件的各个接口、组件类以及描述组件需要EJB容器提供服务的部署描述文件。

1.1 跟我学EJB 分布式编程技术——EJBWebService相关技术及实例

1.1.1 EJB作为Web服务端点技术概述

1、EJB必须是无状态会话Bean

在J2EE平台中,要把EJB部署成Web服务,那么EJB必须是无状态会话Bean。在J2EE1.3以前版本里,需要结合使用其它的工具才能实现部署,比如Apache axis就提供了一个EJB Provider,通过这个EJB Provider,就可以把EJB作为Web服务来访问。在即将发布的J2EE1.4里,在很多方面增强了Web服务的支持,其中包括EJB2.1,它可以直接把无状态会话Bean部署成Web服务。

2、EJB作为Web服务端点时系统的构架如下图所示

如图所示,虽然说把EJB作为Web服务端点部署,但实际上客户端还是要通过一个中介和EJB进行交互,这个中介通常运行在Servlet容器中。

3、WSDL文档描述

在J2EE1.4平台中,可以对EJB技术进行了升级,使得无状态会话Bean可以直接部署为Web服务端点。这样,EJB2.1中的无状态会话Bean可以有三种不同的客户端:本地接口的客户端、远程接口客户端和Web服务客户端。EJB的Web服务客户端视图通过WSDL文档描述。

EJB规范的主要目的是将企业应用系统开发人员从应用系统级的编程工作中解脱出来,使之可以集中精力进行应用系统中商务规则的系统分析和代码编写工作。按照EJB2.0规范的定义,EJB组件由Home接口、Remote接口、组件类和部署描述文件构成。应用程序开发人员在编写EJB组件的代码时,必须完整定义组件的各个接口、组件类以及描述组件需要EJB容器提供服务的部署描述文件。

1.1.2 实现的主要过程及相关技术要点

本例实现将一个带有属性和方法的SessionBean EJB组件发布为Weblogic服务器下的WebService方法。

1、新建一个Project项目,名称为

SessionBeanWebService

2、在该项目中增加一个EJB组件

添加EJB组件:在JB中的“Object Gallery”对话框内选择“EJB Module”项目

将该EJB组件命名为:SessionBeanModule,EJB版本为2.0。

EJB规范的主要目的是将企业应用系统开发人员从应用系统级的编程工作中解脱出来,使之可以集中精力进行应用系统中商务规则的系统分析和代码编写工作。按照EJB2.0规范的定义,EJB组件由Home接口、Remote接口、组件类和部署描述文件构成。应用程序开发人员在编写EJB组件的代码时,必须完整定义组件的各个接口、组件类以及描述组件需要EJB容器提供服务的部署描述文件。

最后将生成对应的EJB程序

1.1.3 创建一个SessionBean组件

1、右键单击设计视图

2、对该EJB的属性进行设置

EJB规范的主要目的是将企业应用系统开发人员从应用系统级的编程工作中解脱出来,使之可以集中精力进行应用系统中商务规则的系统分析和代码编写工作。按照EJB2.0规范的定义,EJB组件由Home接口、Remote接口、组件类和部署描述文件构成。应用程序开发人员在编写EJB组件的代码时,必须完整定义组件的各个接口、组件类以及描述组件需要EJB容器提供服务的部署描述文件。

命名该EJB为SessionEJBWebService,接口类型为remote,EJB的类型为Stateless(因为是作为WebService的方法,因此不需要记录用户的访问状态,将该SessionBean设计为无状态的SessionBean)。

3、在该EJB组件中添加成员属性变量(注意:正常的无状态SessionBean是不需要成员属性变量的,但本例主要是说明 WebService方法的调用,以保存客户端所传递来的参数)。

(1)右击该EJB的组件名称,选择“Field”

命名该成员变量为sampleStr,设置其数据类型为String和其get和set方法的接口类型为remote。

EJB规范的主要目的是将企业应用系统开发人员从应用系统级的编程工作中解脱出来,使之可以集中精力进行应用系统中商务规则的系统分析和代码编写工作。按照EJB2.0规范的定义,EJB组件由Home接口、Remote接口、组件类和部署描述文件构成。应用程序开发人员在编写EJB组件的代码时,必须完整定义组件的各个接口、组件类以及描述组件需要EJB容器提供服务的部署描述文件。

1.1.4 在该EJB组件中添加成员WebService的方法

1、右击该EJB的组件名称,选择“Method”

2、添加一个方法

该方法的名称为:WebServiceMethod,返回类型为String,输入参数为String inputText,接口类型定义为remote。

3、编程该方法体:使用属性和参数

EJB规范的主要目的是将企业应用系统开发人员从应用系统级的编程工作中解脱出来,使之可以集中精力进行应用系统中商务规则的系统分析和代码编写工作。按照EJB2.0规范的定义,EJB组件由Home接口、Remote接口、组件类和部署描述文件构成。应用程序开发人员在编写EJB组件的代码时,必须完整定义组件的各个接口、组件类以及描述组件需要EJB容器提供服务的部署描述文件。

public String WebServiceMethod(String inputText)

{

return inputText+ ":"+this.getSampleStr();

}

4、编译该EJB组件以生成对应的*.jar文件

1.1.5 将该EJB发布为WebService的组件

1、选择Web Service Configuration向导

EJB规范的主要目的是将企业应用系统开发人员从应用系统级的编程工作中解脱出来,使之可以集中精力进行应用系统中商务规则的系统分析和代码编写工作。按照EJB2.0规范的定义,EJB组件由Home接口、Remote接口、组件类和部署描述文件构成。应用程序开发人员在编写EJB组件的代码时,必须完整定义组件的各个接口、组件类以及描述组件需要EJB容器提供服务的部署描述文件。

2、在Toolkit中选择为WebLogic(WebLogic的webserices规范)

在Module type栏中:选择为

Server Module Only

3、制作该WebService所对应的WAR和EAR文件

对apache的WebService来说,只需要一个Web 应用程序。而对WebLogic来说,同时需要EAR文件和War文件。因此,下面对EAR和War文件进行设置。

点击“New”按钮,并命名称该Web应用为SessionEJBWebService。该名称将是WebService的 ContextURI。

EJB规范的主要目的是将企业应用系统开发人员从应用系统级的编程工作中解脱出来,使之可以集中精力进行应用系统中商务规则的系统分析和代码编写工作。按照EJB2.0规范的定义,EJB组件由Home接口、Remote接口、组件类和部署描述文件构成。应用程序开发人员在编写EJB组件的代码时,必须完整定义组件的各个接口、组件类以及描述组件需要EJB容器提供服务的部署描述文件。

4、点击“Finish”按钮后将创建出该Web应用

5、再在Application Module上点击“New”按钮,将新建EAR模块同时进入EAR文件的向

EJB规范的主要目的是将企业应用系统开发人员从应用系统级的编程工作中解脱出来,使之可以集中精力进行应用系统中商务规则的系统分析和代码编写工作。按照EJB2.0规范的定义,EJB组件由Home接口、Remote接口、组件类和部署描述文件构成。应用程序开发人员在编写EJB组件的代码时,必须完整定义组件的各个接口、组件类以及描述组件需要EJB容器提供服务的部署描述文件。

导。命名为JBSessionEJBWebService。

EJB规范的主要目的是将企业应用系统开发人员从应用系统级的编程工作中解脱出来,使之可以集中精力进行应用系统中商务规则的系统分析和代码编写工作。按照EJB2.0规范的定义,EJB组件由Home接口、Remote接口、组件类和部署描述文件构成。应用程序开发人员在编写EJB组件的代码时,必须完整定义组件的各个接口、组件类以及描述组件需要EJB容器提供服务的部署描述文件。

11

杨教授工作室,版权所有,盗版必究, 11/25页

EJB规范的主要目的是将企业应用系统开发人员从应用系统级的编程工作中解脱出来,使之可以集中精力进行应用系统中商务规则的系统分析和代码编写工作。按照EJB2.0规范的定义,EJB组件由Home接口、Remote接口、组件类和部署描述文件构成。应用程序开发人员在编写EJB组件的代码时,必须完整定义组件的各个接口、组件类以及描述组件需要EJB容器提供服务的部署描述文件。

6、最后点击“Finish”按钮后将出现下面的画面

12

杨教授工作室,版权所有,盗版必究, 12/25页

EJB规范的主要目的是将企业应用系统开发人员从应用系统级的编程工作中解脱出来,使之可以集中精力进行应用系统中商务规则的系统分析和代码编写工作。按照EJB2.0规范的定义,EJB组件由Home接口、Remote接口、组件类和部署描述文件构成。应用程序开发人员在编写EJB组件的代码时,必须完整定义组件的各个接口、组件类以及描述组件需要EJB容器提供服务的部署描述文件。

7、最后点击“Next”按钮后将出现下面的画面

8、点击“Finish”按钮

13 杨教授工作室,版权所有,盗版必究, 13/25页

EJB规范的主要目的是将企业应用系统开发人员从应用系统级的编程工作中解脱出来,使之可以集中精力进行应用系统中商务规则的系统分析和代码编写工作。按照EJB2.0规范的定义,EJB组件由Home接口、Remote接口、组件类和部署描述文件构成。应用程序开发人员在编写EJB组件的代码时,必须完整定义组件的各个接口、组件类以及描述组件需要EJB容器提供服务的部署描述文件。

9、导出该EJBBean

点击“Add”菜单后将创建出一个Service类的设计模块。在Display Name 中:输入WebLogicSessionBeanEJBService,在module name栏和SessionBean栏中采用缺省选择

1.1.6 对客户和服务器进行设置 1、设置服务器

14 杨教授工作室,版权所有,盗版必究, 14/25页

EJB规范的主要目的是将企业应用系统开发人员从应用系统级的编程工作中解脱出来,使之可以集中精力进行应用系统中商务规则的系统分析和代码编写工作。按照EJB2.0规范的定义,EJB组件由Home接口、Remote接口、组件类和部署描述文件构成。应用程序开发人员在编写EJB组件的代码时,必须完整定义组件的各个接口、组件类以及描述组件需要EJB容器提供服务的部署描述文件。

选中“Use SOAP 1.2” 2、设置客户端

注意:将产生小写的方法名称

15 杨教授工作室,版权所有,盗版必究, 15/25页

EJB规范的主要目的是将企业应用系统开发人员从应用系统级的编程工作中解脱出来,使之可以集中精力进行应用系统中商务规则的系统分析和代码编写工作。按照EJB2.0规范的定义,EJB组件由Home接口、Remote接口、组件类和部署描述文件构成。应用程序开发人员在编写EJB组件的代码时,必须完整定义组件的各个接口、组件类以及描述组件需要EJB容器提供服务的部署描述文件。

3、编译该项目

将产生该JavaBean的WebService相关的类文件,包括*.wsdl文件

16 杨教授工作室,版权所有,盗版必究, 16/25页

EJB规范的主要目的是将企业应用系统开发人员从应用系统级的编程工作中解脱出来,使之可以集中精力进行应用系统中商务规则的系统分析和代码编写工作。按照EJB2.0规范的定义,EJB组件由Home接口、Remote接口、组件类和部署描述文件构成。应用程序开发人员在编写EJB组件的代码时,必须完整定义组件的各个接口、组件类以及描述组件需要EJB容器提供服务的部署描述文件。

4、查看该客户端的*.jar文件:可以通过Project properties来查看

注意:如果没有出现该GeneratedWebServiceClients的使用该WebService的客户端类,可以采用如下方式来添加。

17 杨教授工作室,版权所有,盗版必究, 17/25页

EJB规范的主要目的是将企业应用系统开发人员从应用系统级的编程工作中解脱出来,使之可以集中精力进行应用系统中商务规则的系统分析和代码编写工作。按照EJB2.0规范的定义,EJB组件由Home接口、Remote接口、组件类和部署描述文件构成。应用程序开发人员在编写EJB组件的代码时,必须完整定义组件的各个接口、组件类以及描述组件需要EJB容器提供服务的部署描述文件。

1.1.7 发布该EAR文件 1、发布该EAR文件

2、查看所部署的结果

(1)进入Weblogic的管理界面

18 杨教授工作室,版权所有,盗版必究, 18/25页

EJB规范的主要目的是将企业应用系统开发人员从应用系统级的编程工作中解脱出来,使之可以集中精力进行应用系统中商务规则的系统分析和代码编写工作。按照EJB2.0规范的定义,EJB组件由Home接口、Remote接口、组件类和部署描述文件构成。应用程序开发人员在编写EJB组件的代码时,必须完整定义组件的各个接口、组件类以及描述组件需要EJB容器提供服务的部署描述文件。

(2)获得其Context Root的内容

展开“Deployment”节点下的“Application”节点,找到本WebService的EJB组件

JBSessionEJBWebService,然后点击它以展开其信息。 (3)在浏览器中浏览该WebService方法的描述,进入

http://127.0.0.1:7001/SessionEJBWebService/SessionEJBWebService

“/SessionEJBWebService”为该EJB的Context Root(前面设置的Web应用模块的名称),而“SessionEJBWebService”为前面设置的Session EJB组件的名称(本例同名,只是偶然!)。

19 杨教授工作室,版权所有,盗版必究, 19/25页

EJB规范的主要目的是将企业应用系统开发人员从应用系统级的编程工作中解脱出来,使之可以集中精力进行应用系统中商务规则的系统分析和代码编写工作。按照EJB2.0规范的定义,EJB组件由Home接口、Remote接口、组件类和部署描述文件构成。应用程序开发人员在编写EJB组件的代码时,必须完整定义组件的各个接口、组件类以及描述组件需要EJB容器提供服务的部署描述文件。

(4)点击“setSampleStr”方法以给成员属性变量赋值

然后再点击“Invoke”按钮将进行正确地赋值

20 杨教授工作室,版权所有,盗版必究, 20/25页

EJB规范的主要目的是将企业应用系统开发人员从应用系统级的编程工作中解脱出来,使之可以集中精力进行应用系统中商务规则的系统分析和代码编写工作。按照EJB2.0规范的定义,EJB组件由Home接口、Remote接口、组件类和部署描述文件构成。应用程序开发人员在编写EJB组件的代码时,必须完整定义组件的各个接口、组件类以及描述组件需要EJB容器提供服务的部署描述文件。

(5)再点击“WebServiceMethod”以对该方法进行测试调用

点击“Invoke”按钮,采用Weblogic中的测试功能进行测试

21 杨教授工作室,版权所有,盗版必究, 21/25页

本文来源:https://www.bwwdw.com/article/o3h4.html

Top