在SSH或者SSI项目里整合axis2

来源:互联网 发布:淘宝新手开店群 编辑:程序博客网 时间:2024/05/23 02:27

自从毕业后也算是看过好些个项目了,有的项目没有使用任何框架,有的使用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"?><beansxmlns="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就发布成功了


很简单吧!得意

原创粉丝点击