axis2 webservice学习笔记
Axis2 创建webservice客户端和服务端 ? 1、环境 Axis2:axis2-1.4.1(下载axis2-1.4.1-bin,并解压到指定路径) Eclipse:Eclipse Java EE IDE for Web Developers. Version:Indigo Release JAVA:jdk1.5.0_07 服务器:tomcat6.0(如果非安装版的不好使,可换成安装版) ? 2、安装eclipse并打开,进入:Window->Preferences->Web Services->Axis2 Preferences做如下设置(设置axis2的路径): ? 3、在eclipse中新建JAVA project(demo工程),并新建类HelloService.java,如下图所示。 ? ? 4、编写HelloService.java类(即服务端的类),其中sayHello方法为服务端的方法。代码如下:
? 5、新建webservice,点next 6、新建webservice对话框,需在两红色区域做些设置,第一个选择刚刚建立的HelloService的类,作为需要实现的服务。在第二个红色区域中,设置运行的服务器,webservice运行环境,及建立service工程的名称,这三个点击即都可以做修改。 ?? 完成以上配置后,选择next即可(后续都默认操作),并在最后一步启动tomcat服务,则tomcat自动完成部署。 7、Eclipse空间中自动生成了webService工程。同时发现对应的src无java类信息,则可以从第一次新建的demo项目中拷贝过来,并修改java类的编译路径,具体设置如下: ? 8、重新编译后,再次部署并重启tomcat服务。 查看服务端地址:http://localhost:8080/webService/,点击Services可查看具体的服务名信息。如正常显示如下图所示,则部署成功。 ? 其中HelloService为刚刚部署的服务,对应的客户端请求地址为: http://localhost:8080/webService/services/HelloService ? 9、编写客户端,代码如下:
? 执行客户端代码,传入参数:test,后台打印为:Hello:test 调试成功。 如果下发布多个WebService,可以使用<serviceGroup>元素,编写MyServices.java类(即服务端的类),其中sayHello方法为服务端的方法。代码如下:
?在services.xml文件中做如下配置即可: <serviceGroup> <service name="SttServices"> <Description> SttServices </Description> <messageReceivers> <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" /> <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" /> </messageReceivers> <parameter name="ServiceClass" locked="false">com.stt.inter.services.SttServices </parameter> </service> <service name="MyServices"> <Description> MyServices </Description> <messageReceivers> <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" /> <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" /> </messageReceivers> <parameter name="ServiceClass" locked="false">com.stt.inter.services.MyServices </parameter> </service> </serviceGroup> 注意:当前使用的环境及版本,不需要使用 axis2-1.4.1-war.zip 及相关插件。 ?附录: 经测试1.5.3及1.6.0版本中都会出现类AxisAdminServlet无法找到,主要的原因是这两个版本中的jar包中都不存在AxisAdminServlet类,这样导致service服务无法启动以及不能进入service的管理控制台。对这种情况可以通过以下方式解决: 找到当前版本对应的war包,如:axis2-1.6.0-war.zip并解压到指定目录,打开解压后的axis2.aar包,在WEB-INF/classes目录下有需要的类AxisAdminServlet,则可以将classes目录下所有的class文件打成jar包,重新放到工程目录中即可。 同时做如下更改(都是根据后台日志报错做的修改): 1、修改web.xml中AxisAdminServlet的<servlet-class>项为:org.apache.axis2.webapp.AxisAdminServlet ? 另把环境换成WebLogic Server Version: 10.3.0.0 +axis2-1.6.0+jdk1.5+Eclipse?Indigo Release,按照如上步骤再次操作,先在tomcat中部署测试后将生成的webservice服务端应用部署至weblogic域下可正常启动并调用正常。但是有weblogic9版本会有好多jar包有冲突问题。 打jar包命令: 进入dos操作符窗口 cd进入要打成jar包的class文件所有文件夹目录 jar cvf[生成jar的名称.jar] [列出class文件] ? 如:jar cvf ?名称.jar ./文件夹????????????——表示将当前文件夹下的class打jar ? jar cvfibstool.jar com/cn/ibs/TurnD.class com/cn/ibs/TurnB.class 二、把一个文件夹下面的所有class文件打成jar包 jar cvfibstool.jar * 回车 ? 服务端打aar包命令: 用java cvf hello.aar和axis插件都可以。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |