前面写了一篇文章:WSDL自动创建服务端与客户端代码,可以参考如下链接http://zhangzhenting.iteye.com/blog/624364
本文主要介绍如何根据生成的服务端代码来构建服务端,以及axis2与spring的整合应用,操作步骤如下:
创建一个web工程,并将生成的服务端代码复制到工程源文件夹(src)中。
找到axis2的安装目录,将以下文件夹复制到工程根目录(WebRoot)下:
axis2-1.3\webapp\axis2-web
将以下文件夹复制到WEB-INF目录下:
axis2-1.3\conf
axis2-1.3\repository\modules
axis2-1.3\repository\services
可以通过附件图片查看Eclipse中的目录结构。
在根目录下新建 resources\META-INF 文件夹,并建立 services.xml 文件(可以通过WSDL自动创建,和代码一起创建的),添加内容如下:
<?xml version="1.0" encoding="UTF-8"?> <serviceGroup> <service name="UserService"> <messageReceivers> <messageReceiver mep="http://www.w3.org/ns/wsdl/in-out" class="com.zzt.ws.UserServiceMessageReceiverInOut" /> </messageReceivers> <parameter name="ServiceClass">com.zzt.ws.UserServiceSkeleton</parameter> <parameter name="ServiceObjectSupplier">org.apache.axis2.extensions.spring.receivers.SpringServletContextObjectSupplier</parameter> <parameter name="SpringBeanName">UserServiceBean</parameter> <parameter name="useOriginalwsdl">true</parameter> <parameter name="modifyUserWSDLPortAddress">false</parameter> <operation name="selectUDBAssertion" mep="http://www.w3.org/ns/wsdl/in-out"> <actionMapping>tns:UserAssertion</actionMapping> <outputActionMapping>tns:UserAssertionResponse</outputActionMapping> </operation> </service> </serviceGroup>
该文件为axis2服务的配置文件,其中SpringBeanName对应Spring中的Bean,该bean配置为axis2服务端的实现类, 在该应用中为:com.zzt.ws.UserServiceSkeleton
其中 aar 可以通过下面方式来生成:
将当前目录指向 resource 目录,并通过下面方式生成 aar 文件并复制到 services 目录,并修改 services.list 文件
D:\workspace\Test_Axis2\WebContent\resources>jar -cvf UserService.aar META-INF
标明清单(manifest)
忽略项 META-INF/
增加:META-INF/services.xml(读入= 1111) (写出= 474)(压缩了 57%)
增加:META-INF/UserService.wsdl(读入= 7495) (写出= 1019)(压缩了 86%)
在web.xml中注册axis2的相关信息:
<!--axi2相关配置--> <servlet> <servlet-name>AxisServlet</servlet-name> <display-name>Apache-Axis Servlet</display-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> <welcome-file-list> <welcome-file>index.jsp</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>
将以上项目部署到服务器中并访问http://localhost:8080/zzt/services/listServices可以查看服务描述信息。
下面附件给出该示例的代码,因工程比较大,所以去掉了lib里面的所有jar文件,jar文件可以从axis2安装目录lib下获取。