axis全称Apache EXtensible Interaction System 即阿帕奇可扩展交互系统。Axis本质上就是一个SOAP引擎,提供创建服务器端、客户端和网关SOAP操作的基本框架。



 



最近在项目里面使用了webservices技术,但是框架 客户那边已经选择好了。 服务端已经完成了。我们没有选择。只能调用。

 

这边客户端是使用的axis1.x  服务端使用的是CXF 2.7 下面我们就简单的写一个用例 来介绍下webservices搭建和调用。


首先 我们到http://cxf.apache.org上面下载cxf2.7版本。

在Eclipse里面新建一个Java工程  把jar增加到项目里面。在src下面新建一个包 me.service.biz


下面我们开始新建一个接口:



?


package  me.service.biz;
 
import  javax.jws.WebMethod;
import  javax.jws.WebParam;
import  javax.jws.WebService;
 
@WebService
public  abstract  interface  EwmBiz {
 
     @WebMethod
     public   String getEwmmethodFor( @WebParam (name= "text" ) String text)  throws  Exception;
     
}
————————————————
版权声明:本文为CSDN博主「iteye_8039」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/iteye_8039/article/details/82651197



在包me.service.biz.impl下面新建一个实现类



?



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package  me.service.biz.impl;
 
import  javax.jws.WebService;
 
import  me.service.biz.EwmBiz;
 
 
@WebService (endpointInterface= "me.service.biz.EwmBiz" ,name= "EwmBiz" )
public  class  EwmBizImpl  implements  EwmBiz{
 
     @Override
     public  String getEwmmethodFor(String text)  throws  Exception {
         
         System.out.println( "parameter is =======>>>> "  + text);
         
         return  "parameter is =======>>>> "  + text;
     }
     
}
————————————————
版权声明:本文为CSDN博主「iteye_8039」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/iteye_8039/article/details/82651197



我们的接口就完成了 下面我们写一个main方法来启动服务端:



?


package  me.service;
 
import  me.service.biz.EwmBiz;
import  me.service.biz.impl.EwmBizImpl;
 
import  org.apache.cxf.endpoint.Endpoint;
import  org.apache.cxf.jaxws.JaxWsServerFactoryBean;
 
public  class  ServiceRun {
 
     public  static  void  main(String[] args) {
 
         System.out.println( "Starting Server" ); 
         EwmBiz ewmBiz =  new  EwmBizImpl(); 
         String address =  "http://localhost:8090/EwmBiz" ; 
         javax.xml.ws.Endpoint.publish(address, ewmBiz); 
         
         System.out.println( "服务启动完成。。。。" );
 
     }
}
————————————————
版权声明:本文为CSDN博主「iteye_8039」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/iteye_8039/article/details/82651197



上面启动一下 我们的服务端就完成了。


下面我们新建一个Java工程  完成client 客户端的调用  把axis下面的jar全部加到lib下面  在加一个commons-logging.jar

在src下面新建一个Java类

代码如下:



?


package  me.client;
 
import  java.net.URL;
 
import  javax.xml.namespace.QName;
import  javax.xml.rpc.ParameterMode;
 
import  org.apache.axis.client.Call;
import  org.apache.axis.client.Service;
 
public  class  ClientRun {
     
     public  static  void  main(String[] args)  throws  Exception {
         
         String url =  "http://localhost:8090/EwmBiz" ;
         Service service =  new  Service();
         Call call = (Call) service.createCall();
         
         call.setTargetEndpointAddress( new  URL(url));
         
         String targetNamespace =  "http://biz.service.me/" ;
         
         QName qName =  new  QName(targetNamespace, "getEwmmethodFor" );
         call.setOperationName(qName);
         
//      QName qName2 = new QName(targetNamespace, "");
         
         call.addParameter( "text" ,  null ,ParameterMode.IN);
         
         String message = (String) call.invoke(  new  Object[]{ "yangzhongren" });
         System.out.println(message);
     }
     
}
————————————————
版权声明:本文为CSDN博主「iteye_8039」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/iteye_8039/article/details/82651197



这样我们测试一下 可以的 是调用通了。