下面我们简要介绍如何通过cxf框架发布webservice
首先新建一个Java project为cxfmodel_server
首先去官网下载cxf:http://cxf.apache.org/download.html
下面我们就开始使用
(1)发布服务
第一步:新建需要发布的接口HelloWorld.java,里面包含一个sayHello方法,其次写出这个接口的实现类实现sayHello方法,简要的打印输出结果
第二步:给接口和实现类加上相应的注解
@WebService表明此类发布为一个服务
@WebMethod表明发布的服务方法
实际代码如下
接口 HelloWorld.java
@WebService
public interface HelloWorld {
@WebMethod
public String sayHello(String name);
}
我们可以看出,其中使用了两个注解,
@WebService表明此类发布为一个服务,@WebMethod表明发布服务包含的方法。
接口实现类HelloWorldImpl.java
@WebService
public class HelloWorldImpl implements HelloWorld {
@Override
public String sayHello(String name) {
System.out.println("server sayHello() :" + name);
return "Hello " + name;
}
}
第三步:编写发布服务的方法,其中我们需要用到Endpoint类的publish方法。
public class ServerTest {
public static void main(String[] args) {
//表示我们服务<span style="font-family: Arial, Helvetica, sans-serif;">发布</span>的地址
String address = "http://localhost:8989/jdkmodel_server/hellows";
Endpoint.publish(address, new HelloWorldImpl());
System.out.println("server start ...");
}
}
第四步:很关键,将我们下载的cxf jar包导入工程lib目录下,目录不存在,就新建一个
第五步:右键run as---java application,得到运行结果,表示服务发布成功
小结:
区别一:使用cxf发布wenservice和使用jdk的区别在于cxf使用jetty容器发布服务(我们可以再jar包中看到),而jdk则使用tomcat容器发布服务。
区别二:使用cxf发布webservice我们也可以是用自带的wsdl2java.exe命令生成客户端代码
(2)生成客户端调用代码
以上我们发布完成了服务,下面我们来通过cxf自带的wsdl2java.exe命令生成客户端调用代码
注:wsdl2java.exe命令在cxf的bin目录下,大家可以自行查看
以上命令十分简单
cmd----跳转到你需要保存客户端代码的目录下---wsdl2java url
输入以上命令即可生成客户端调用代码,需要注意的是上面提到的url,可以使我们发布的wsdl文件地址,也可以是本地wsdl文件。使用时需要注意。
以上就可以使用生成的代码调用我们发布的服务,结果如下