王朝网络
分享
 
 
 

在Jboss下Web Service调用EJB二(组图)

王朝other·作者佚名  2008-05-31
宽屏版  字体: |||超大  

五.利用Jboss-IDE插件部署发布EJB和Web Service

1.Jboss-IDE插件的下载和安装

Jboss-IDE是Jboss推荐的一个辅助J2EE开发的Eclipse插件,可以去http://www.jboss.com/PRodUCts/jbosside/downloads的官方网站下载,当前版本1.4.1。安装jboss-ide插件的方法和安装其他的标准Eclipse插件没有区别,安装成功之后就可以在首选项中看到Jboss-IDE选项。如下图:

点击查看大图

2.利用Jboss-IDE打包EJB

切换到java透视图模式下,然后在项目名称上点击右键,在出现的右键菜单上选择属性,在出现的窗口中选择Packaging Configuration选项,出现如下的窗口

点击查看大图

以上是设置完成之后的最终窗口,假如没有设置,请点击add…按钮,出现如下窗口

在name框中输入打包jar文档的名称,我们可以输入PersonManager.jar,在Destination中点击Browse按钮,选择当前项目中的bulid目录,这个选项是指定jar文件的输出目录,假如当前项目中没有build目录,请自己创建一个。完成之后点击确定完成;

PersonManager.jar选项上点击右键,在出现的右键菜单上选择Add Folder选项,出现以下窗口

在Folder输入框中选择会话bean的class文件,如:/WebService/bin/com/ejb/sessionbean,在Includes输入框中输入*.class,表示将该目录下的所有class文件进行打包,在perfix中输入class文件的打包路径,如:com/ejb/sessionbean,这个路径必须和类中的package的设置一样,然后点击确定完成。

用同样的方法再创建一个class目录,就是Person对象。完成之后如下图:

点击确定完成;

接下去是指定2个打包用的EJB的配置文件,在PersonManager.jar选项上点击右键,在出现的右键菜单上选择Add File选项,出现以下窗口

在File输入框中选择ejb-jar.xml文件的路径,在Perfix框中输入META-INF,表示该配置文件将被打包到META-INF目录中。

用相同的方法将另外一个配置文件jboss.xml也打包进来,如下图

完成之后,就完成了EJB部分的打包设置。

接下来是Web Service的打包设置,Web Service很简单,只要将web-service.xml配置文件打包成wsr文件就可以了,点击add按钮,输入打包名称,选择输出目录,点击确定,如下图

在PersonManagerService.wsr选项上点击右键,在出现的右键菜单上选择Add File选项出现如下窗口

在File输入框中选择web-service.xml配置文件的路径,在Prefix输入框中输入META-INF,表示配置文件将被打包到META-INF目录中。点击确定完成。

到此所有的打包配置工作全部完成。完成之后会在项目的根目录下产生一个packaging-build.xml文件,其实它是一个ant的build文件,有爱好的可以打开看看。可以学到不少东西。

接下去是运行ant,进行打包,在项目名称上点击右键,在出现的右键菜单上点击Run Packing选项,如下图

假如运行成功,则会去build目录下产生2个文件,PersonManager.jar和PersonManagerService.wsr文件,前一个是EJB打包文件,第2个是Web Service打包文件。如下图所示

3.EJB和Web Service的部署与发布

在PersonManager.jar文件上点击右键,在出现的右键菜单上选择Deployment-Deploy to选项,将EJB发布到jboss服务器中,如下如所示

用同样的方法部署发布PersonManagerService.wsr文件,完成EJB和Web Service的发布部署。需要注重的是,通过上面的方法发布应用程序,需要在Eclipse中设置Jboss服务器的安装路径,相关设置请查阅Jboss-IDE的使用说明。另外的一个发布方法,是利用Jboss的热部署特性,直接将PersonManager.jar和PersonManagerService.wsr这2个文件直接复制到${JBOSS_HOME}\ server\all\deploy目录下即可。由于Jboss3.2只有在all模式下才包含Web Service的支持,所以一定要复制到all目录中的deploy目录下。至此所有的开发部署已经完成!

六.测试Jboss的服务是否已经成功发布

要测试服务已经成功启动,请使用以下方法

1.启动jboss服务器,注重启动服务器需要带all参数,如下如所示

点击查看大图

启动成功之后的画面如下

点击查看大图

在红色线框中我们已经可以看到EJB(PersonManager.jar)已经部署成功了。

2.检查Web Service是否已经启动。打开浏览器,输入http://localhost:8080/jboss-net/servlet/AxisServlet,出现如下的页面:

从中我们发现PersonManagerService这个服务已经启动了。包含getPersonByName,getPersonList,storePerson和deletePerson方法,注:其中getPersonList方法应该是没有的,因为在该篇文章中我们并没有在会话bean的实现类中实现这个方法,也没有在远程接口中定义这个方法。

到此我们已经测试完成了,并证实EJB和Web Service都已经成功的发布或启动了。

七.编写客户端进行测试

我们使用application的方式编写一个客户端程序对刚才发布的EJB和Web Service进行测试。代码如下:

package com.webservice.client;import java.net.*;import javax.xml.namespace.*;import javax.xml.rpc.ParameterMode;import org.apache.axis.client.*;import org.apache.axis.encoding.*;import org.apache.axis.encoding.ser.BeanSerializerFactory;import org.apache.axis.encoding.ser.BeanDeserializerFactory;import com.pojo.*;public class PersonManagerClinet{public static void main( String args[] ) throws Exception{

String endpoint = "http://localhost:8080/jboss-net/services/PersonManagerService";

Service service = new Service();

Call call = (Call) service.createCall();

call.setTargetEndpointAddress(new URL(endpoint));

QName qn = new QName("http://localhost:8080/pojo/person", "Person");

call.registerTypeMapping(Person.class, qn, new BeanSerializerFactory(

Person.class, qn),

new BeanDeserializerFactory(Person.class, qn));

Person person = null;

call.setOperationName("storePerson");

call.addParameter("person", XMLType.XSD_ENTITY, ParameterMode.IN);

person = new Person("java");

call.invoke(new Object[] {person});

System.out.println("OK!");

call.setOperationName("getPersonByName");

call.addParameter("name", XMLType.XSD_STRING, ParameterMode.IN);

call.setReturnType(qn);

person = (Person) call.invoke(new Object[] {"java"});

System.out.println(person);

}}

运行结果如下:

点击查看大图

可以看到服务已经运行了,并返回了正确的结果。到此我们已经完成了在Jboss环境下Web Service调用EJB的开发,另外jboss自从4.0开始升级了其Web Service模块,由原来的jboss-net升级到了ws4ee,而且部署和发布也发生很大的变化,可以说,在3.2下的调试成功的Web Service在4.0上是无法运行的,目前在jboss的官方网站上有一篇关于在jboss4.0上配置web service的文章。有爱好的人可以去查阅一下。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有