博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WebService学习(二)——Apache CXF
阅读量:7052 次
发布时间:2019-06-28

本文共 2539 字,大约阅读时间需要 8 分钟。

hot3.png

服务端接口开发

  • 创建maven的JavaSE项目:ws-server
  • 项目JDK需要是1.7以上版本,因为从1.7开始,JDK有WebService的默认实现。
  • 创建服务接口:ServiceDemo
@WebServicepublic interface ServiceDemo{     public String say(String str);}
  • 创建服务接口实现类:ServiceDemoImpl
@WebServicepublic class ServiceDemoImpl implements ServiceDemo{     public String say(String str) {        return "Hello "+str;    } }
  • 创建发布服务的主类:Server,可以使用JDK默认实现的EndPoint实现,也可以使用CXF提供的WebService实现。

JDK实现:

public class Server {     public static void main(String[] args) {        System.out.println("web service start");          HelloWorld implementor = new ServiceDemoImpl ();          String address = "http://192.168.1.103/serviceDemo";          Endpoint.publish(address, implementor);  // JDK实现        System.out.println("web service started");      }}
  • 使用CXF需要添加的jar:
org.apache.cxf
cxf-core
3.1.5
org.apache.cxf
cxf-rt-frontend-jaxws
3.1.5
org.apache.cxf
cxf-rt-transports-http-jetty
3.1.5

CXF实现:

public class Server {     public static void main(String[] args) {        System.out.println("web service start");          HelloWorld implementor = new ServiceDemoImpl ();          String address = "http://192.168.1.103/serviceDemo";                  JaxWsServerFactoryBean factoryBean = new JaxWsServerFactoryBean();        factoryBean.setAddress(address); // 设置暴露地址        factoryBean.setServiceClass(HelloWorld.class); // 接口类        factoryBean.setServiceBean(implementor); // 设置实现类        factoryBean.create();              System.out.println("web service started");      1}}
  • 运行主类,发布服务:运行S1erver类
  • 在浏览器中访问服务:在浏览器中输入: address?wsdl

客户端实现

配置CXF

  • 解压到 D:\apache-cxf-3.1.5
  • bin目录下有wsdl2java,wsdl2java.bat,要使用wsdl2java命令,需要配置path。打开环境变量配置,将路径:D:\apache-cxf-3.1.5\bin 加入。

开发webservice客户端

  • 创建一个maven的JavaSE项目:ws-client

  • 找到ws-client项目的本地路径: 输入图片说明

  • 在本地路径下按shift加鼠标右键,打开命令窗口,输入:wsdl2java address?wsdl。其中address是指服务端发布的webservice接口

  • 上一步中需要注意的是:不能把服务器端关闭。

  • 执行完之后,刷新ws-client,客户端的代码就生成了。

  • 关键代码是ServiceDemoService.java

  • 编写客户端主类:Client

public class Client {     public static void main(String[] args) {        ServiceDemoService service=new ServiceDemoService();        ServiceDemo serviceDemo=service.getServiceDemoPort();        System.out.println(serviceDemo.say("penelope"));    }}
  • 运行Client,打印出:hello penelope,说明成功调用了webservice服务器端的接口。

转载于:https://my.oschina.net/u/3672057/blog/1535307

你可能感兴趣的文章
Java 的强引用、弱引用、软引用、虚引用
查看>>
zabbix性能简单调优
查看>>
CSS 详细解读定位属性 position 以及参数
查看>>
ed 命令 cat 命令
查看>>
想想你,幸福和快乐就来了
查看>>
html base标签 target=_parent使用介绍
查看>>
nginx实现反向代理,以反向代理tomcat为例
查看>>
团队项目冲刺5
查看>>
poj3254 Corn Fields(状压dp)
查看>>
方便记忆的电话号码
查看>>
+CIMG+彩色图片边缘提取实验记录_canny/hough transfrom
查看>>
BZOJ2179:FFT快速傅立叶(FFT)
查看>>
js文件如何最后加载
查看>>
[操作系统] 线程和进程的简单解释
查看>>
CH5101 LCIS
查看>>
C#面向对象课程两大特性——封装、继承 12月23日
查看>>
Scala-基础-变量与常量
查看>>
spark SQL学习(数据源之json)
查看>>
Ambari Server 配置修改流程
查看>>
阿里架构师都在学的知识体系
查看>>