在SSH或者SSI项目里整合axis2
自从毕业后也算是看过好些个项目了,有的项目没有使用任何框架,有的使用SSH有的则是SSI.? 相比之下还是觉得SSI是最方便最快捷的,特别是在webservice的开发这一块上,ibatis的效果还是很出色的,它不像hibernate那样会出现对象循环引用的问题在程序的开发上也是很好控制的。在webservice的开发方面有的人使用Ant工具生成客户端来使用,这样的缺点就是打包麻烦程序也不灵活,试想一下如果webservice所在服务器的IP发生变动那就会出现类似404这样的错误。这样简直就是要恶心死人的。 webservice这一块使用cxf是最简单的,xfire的话就很麻烦,当然了使用axis2也不比cxf差。目前axis2的发行版本已经到1.6.2了,个人觉得SOA太恶心了要安装那么多的东西速度也不是很快。下面就和大家分享下我做webservice开发的过程 1.下载axis开发包,我这里选择war包,导入eclipse里就能看到项目了开发包自然是在lib下面了。把他们全部拷贝出来放在项目里就Ok了 2.axis2的结构 对于axis2-web就放的是一些页面了,其中包含webservice接口的显示页面和axis2的错误页面等。WEB-INF下面的conf下面的axis2、modules,services是axis的j配置 尤其需要注意的是哪个aar包,开发的时候我们首先把conf、modules、services文件夹拷贝到项目的WEB-INF下面,axis2-web就放在站点根目录下面,web.xml则加入如下配置 <servlet> <servlet-name>AxisServlet</servlet-name> <servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> <mime-mapping> <extension>inc</extension> <mime-type>text/plain</mime-type> </mime-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> <welcome-file>index.html</welcome-file> <welcome-file>/axis2-web/index.jsp</welcome-file> </welcome-file-list> <error-page> <error-code>404</error-code> <location>/axis2-web/Error/error404.jsp</location> </error-page> <error-page> <error-code>500</error-code> <location>/axis2-web/Error/error500.jsp</location> </error-page> 到这里工作就完成一半了,下面的工作就是重新打那个aar包了。在日常的项目里一般来说我们一般把webservice单独拿出来写在一个配置文件里就像下面这样 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <bean name="HealthspecialytypeWebService" class="com.utsmart.huiju.webService.healthspecialtytype.HealthspecialtytypeWebService" autowire="byName"> <property name="healthspecialytypeManager" ref="HealthspecialytypeManager"></property> </bean> <bean name="HealthinfoWebService" class="com.utsmart.huiju.webService.health.HealthWebService" autowire="byName"> <property name="healthManager" ref="HealthManager"></property> </bean> </beans> 下面来看下aar包里面到底是什么东西,解压后应该看到2个目录 其中lib下面有2个jar包分别是axis2-spring-1.5.1.jar和spring.jar由于版本的差别可能名称不一样,META-INF下面则是MANIFEST.MF和services.xml.其中services.xml则是接口的配置信息如接口名称和对应的spring的bean名称等 <?xml version="1.0" encoding="UTF-8"?> <serviceGroup> <!-- 健康教育类别信息 --> <service name="HealthspecialytypeWebService"> <description> 健康教育类别 </description> <parameter name="ServiceObjectSupplier"> org.apache.axis2.extensions.spring.receivers.SpringServletContextObjectSupplier </parameter> <parameter name="SpringBeanName"> HealthspecialytypeWebService </parameter> <messageReceivers> <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" /> <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" /> </messageReceivers> </service> <!-- 健康教育信息 --> <service name="HealthinfoWebService"> <description> 健康教育信息 </description> <parameter name="ServiceObjectSupplier"> org.apache.axis2.extensions.spring.receivers.SpringServletContextObjectSupplier </parameter> <parameter name="SpringBeanName"> HealthinfoWebService </parameter> <messageReceivers> <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" /> <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" /> </messageReceivers> </service> </serviceGroup> 下面个大家解释下这个文件应该怎么写 长方形里面的是接口的名称,椭圆里面是该webservice所对应的spring的bean的名称。services.xml修改完成之后下面的工作就是打包了,首先把lib和META-INF这2个文件夹放在一个新建好的文件夹里,只要机子上配置了环境变量就可以直接使用命令打包了 这样打包就OK了,把这个包拷贝在services下面覆盖原来的webservice就发布成功了 3.查看webservice是否发布成功 启动好tomcat后,直接输入下面的地址? http://localhost:8089/utsmart/services/listServices,就可以看到如下的界面 看到类似这样的界面后axis2的webservice就发布成功了 很简单吧! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |