WebProject项目手动配置Axis2

1、先在http://axis.apache.org/axis2/java/core/download.cgi 下载最新的包;取里面的axis2.war包放置tomcat下部署解压后得到axis2文件夹;

2、把 %tomcatHome%\webapps\axis2\WEB-INF\conf 文件夹拷贝到项目 WebRoot\WEB-INF 目录下;

3、把 %tomcatHome%\webapps\axis2\WEB-INF\lib 下所有jar拷贝到 WebRoot\WEB-INF\lib 中,并配置项目的BuildPath;

4、把 %tomcatHome%\webapps\axis2\WEB-INF\modules 文件夹拷贝到 WebRoot\WEB-INF 目录下;

5、在WebRoot\WEB-INF下新建目录 “services\AxisService\META-INF” 路径,且在该目录下新建services.xml文件,内容如下:

<service name="AxisService">
	<description>AxisService</description>
	
	<!--方式一 结合Spring ,通过ServiceObjectSupplier参数指定SpringServletContextObjectSupplier类来获得Spring的ApplicationContext对象-->
	<parameter name="ServiceObjectSupplier">
		org.apache.axis2.extensions.spring.receivers.SpringAppContextAwareObjectSupplier
	</parameter>
	<!--SpringBeanName固定的不能改 personService是spring中注册的实现类得id-->
	<parameter name="SpringBeanName">personService</parameter>
	<messageReceivers>
		<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
			class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
		<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
			class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
	</messageReceivers>

	<!--方式二 正常配置
	<parameter name="ServiceClass">
		com.people.service.impl.PersonServiceImpl
	</parameter> 
	<operation name="getPersonList"> 
		<messageReceiver class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
	</operation>
	<operation name="updatePerson"> 
		<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
	</operation>
 	-->

</service>

6、在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>
7、 (Spring配置需要)在applicationContext.xml中配置

<bean id="applicationContext"
		class="org.apache.axis2.extensions.spring.receivers.ApplicationContextHolder" />

8、WebService部署启动,并测试

package com.people.client;

import javax.xml.namespace.QName;

import org.apache.axis2.AxisFault;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.rpc.client.RPCServiceClient;

public class ClientTest {
	public static void main(String[] args) {
		try {
			final String endpoint = "http://127.0.0.1:8080/person/services/AxisService?wsdll";
			String opName = "getPersonList";
			Class<?>[] opReturnType = new Class[] { String[].class };
			RPCServiceClient serviceClient = new RPCServiceClient();// 此处RPCServiceClient
			// 对象实例建议定义成类中的static变量,否则多次调用会出现连接超时的错误。
			Options options = serviceClient.getOptions();
			EndpointReference targetEPR = new EndpointReference(endpoint);
			options.setTo(targetEPR);
			QName opQName = new QName("http://impl.service.people.com", opName);
			Object[] ret = serviceClient.invokeBlocking(opQName, new Object[] {},
					opReturnType);
			System.out.println(((String[]) ret[0])[0]);
		} catch (AxisFault e) {
			e.printStackTrace();
		}
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值