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
这样我们测试一下 可以的 是调用通了。