Axis2 配置WebService 不打包
首先去网上下载一个Axis2.war,解压备用


1.创建一个MyService类,方法名sayHello
2.把WEB-INF下面的axis2-web放入Webroot中,把WEB-INF的lib替代了,web.xml也用它的
3.如图路径配置一个services.xml
<?xml version="1.0" encoding="UTF-8"?> <serviceGroup> //配置多个service用组 <service name="myService"> //和类名一样,访问最后会映射它 http://localhost:8080/WebServiceDemo/services/myService?wsdl <description>Web Service</description> <parameter name="ServiceClass">service.MyService</parameter> //类地址 <messageReceivers>
//第一个in-out 有回值,没有回值都可以,第二个没有回值,in <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>
http://localhost:8080/WebServiceDemo/services/myService?wsdl
axis2-web下面的东西可以不要那么多,我就只保留了index.jsp,httpbase.jsp和listServices.jsp这三个文件
package service; 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 Test { public static void main(String[] args) throws AxisFault { RPCServiceClient serviceClient = new RPCServiceClient(); Options options = serviceClient.getOptions(); // 指定调用WebService的URL 项目名+services+类名 EndpointReference targetEPR = new EndpointReference( "http://localhost:8080/WebServiceDemo/services/myService"); options.setTo(targetEPR); // 指定sayHello方法的参数值 Object[] opAddEntryArgs = new Object[] {"sss"}; // 指定sayHelloToPerson方法返回值的数据类型的Class对象 Class[] classes = new Class[] {String.class}; // 指定要调用的sayHello及WSDL文件的命名空间 QName opAddEntry = new QName("http://service", "sayHello"); // 调用sayHelloToPerson方法并输出该方法的返回值 System.out.println(serviceClient.invokeBlocking(opAddEntry, opAddEntryArgs, classes)[0]); } }
浙公网安备 33010602011771号