`

基于Axis2的WS构建服务端示例

阅读更多

前面写了一篇文章: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下获取。

  • 大小: 16.8 KB
分享到:
评论
1 楼 andey007518 2014-03-26  
不错,明天好试验试验

相关推荐

Global site tag (gtag.js) - Google Analytics