axis2好多人都说比cxf复杂,实际上也没那么恐怖,估计都是被网上说的那些方法给吓的。网上有种说法就是把axis的demo里所有jar包复制到WEB-INF的lib下面,这种做法的确可以但是有很多的jar包都用不上,这样会对服务器的内存造成浪费。这次我分享下我的做法,我用的axis2是1.6.2的也算是最新的。
1 axis2开发webservice所需的最少jar包配置
axiom-api.jar
axiom-impl.jar
commons-fileupload.jar
commons-httpclient.jar
commons-io.jar
commons-logging.jar
mail.jar
neethi.jar
woden-api.jar
wsdl4j.jar
XmlSchema.jar
以axis2开头的所有jar包
上面这些jar的名字我没写版本号,反正只有是这些jar包就行,应该全部能在axis2的demo里找到
2 另外使用axis2还有一个难点就是打aar包,这里我给大家一个命令(注意后面的那个小点)
jar -cvf webservice.aar .
3 WEB-INF下面添加这几个文件夹
可以从axis2的demo里面复制出conf、modules、services文件夹之后粘贴到WEB-INF下面,services下面的是aar包和services.list文件,这一部分可以根据自己的实际需要替换
4 根目录下面添加axis2-web文件夹,该文件夹在demo里可以找到
5 配置web.xml
主要配置axis2的servlet上去,内容大致如下
<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>
<servlet-name>AxisAdminServlet</servlet-name>
<servlet-class>org.apache.axis2.webapp.AxisAdminServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/servlet/AxisServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>*.jws</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AxisAdminServlet</servlet-name>
<url-pattern>/axis2-admin/*</url-pattern>
</servlet-mapping>
<!-- servlet-mapping>
<servlet-name>SOAPMonitorService</servlet-name>
<url-pattern>/SOAPMonitor</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包里面 SpringBeanName配置可以是bean的id,当然了name也是OK的。详细配置可以参考这篇文章