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]);
    }

}

 

posted @ 2017-03-28 15:07  猴子童鞋  阅读(526)  评论(0)    收藏  举报