webservice CXF入门服务端
CXF作为java领域主流的WebService实现框架,Java程序员有必要掌握它。
CXF主页:http://cxf.apache.org/
简介:百度百科
今天的话,主要是用CXF来开发下WebService服务器端接口,明天写下开发客户端接口;
这里用Maven。
首先建一个Maven的j2se项目;
项目的jre用1.7,因为1.7有webservice的默认实现。不要用1.5 不然下面你用我的代码会有问题,用1.5的话,还需要另外加jar包,这里为了大家省事,要换成1.7;
根据规范,我们先建一个接口类:HelloWorld
package com.java1234.webservice;import javax.jws.WebService;@WebService public interface HelloWorld {public String say(String str); }
再建一个具体的实现类:HelloWorldImpl
package com.java1234.webservice.impl;import javax.jws.WebService;import com.java1234.webservice.HelloWorld;@WebService public class HelloWorldImpl implements HelloWorld{public String say(String str) {return "Hello "+str;}}
最后建一个发布服务的主类:Server
package com.java1234.webservice;import javax.xml.ws.Endpoint;import com.java1234.webservice.impl.HelloWorldImpl;public class Server {public static void main(String[] args) {System.out.println("web service start"); HelloWorld implementor = new HelloWorldImpl(); String address = "http://localhost/helloWorld"; Endpoint.publish(address, implementor); // 纯JDK实现System.out.println("web service started"); } }
这里的Endpoint是Jdk自身实现的WebService。所以到这里我们不需要用到CXF的任何东西。
String address =
"http://localhost:8080/helloWorld"
;
我们运行下Server类:
我们在浏览器里访问:http://localhost/helloWorld?wsdl
说明已经成功调用了webservice接口;
这里的wsdl 是 Web Services Description Language的缩写,是一个用来描述Web服务和说明如何与Web服务通信的XML语言。WSDL是Web Service的描述语言,用于描述Web Service的服务,接口绑定等,为用户提供详细的接口说明书。
请求后得到的是一个xml规范文档。是一套规范,后面会具体介绍,任何语言平台技术都可以解析。
下面我们介绍使用CXF来实现webservice接口:
我们先在pom.xml中加入:
<dependency><groupId>org.apache.cxf</groupId><artifactId>cxf-core</artifactId><version>3.1.5</version></dependency><dependency><groupId>org.apache.cxf</groupId><artifactId>cxf-rt-frontend-jaxws</artifactId><version>3.1.5</version></dependency><dependency><groupId>org.apache.cxf</groupId><artifactId>cxf-rt-transports-http-jetty</artifactId><version>3.1.5</version></dependency>
这里要额外加入jetty,作为webservice发布的服务器。jetty是一个内嵌的web服务器;
我们把Server改下。换成CXF实现:
package com.java1234.webservice;import org.apache.cxf.jaxws.JaxWsServerFactoryBean;import com.java1234.webservice.impl.HelloWorldImpl;public class Server {public static void main(String[] args) {System.out.println("web service start"); HelloWorld implementor = new HelloWorldImpl(); String address = "http://192.168.1.103/helloWorld"; // Endpoint.publish(address, implementor); // JDK实现JaxWsServerFactoryBean factoryBean = new JaxWsServerFactoryBean();factoryBean.setAddress(address); // 设置暴露地址factoryBean.setServiceClass(HelloWorld.class); // 接口类factoryBean.setServiceBean(implementor); // 设置实现类factoryBean.create(); System.out.println("web service started"); }
}
运行效果和刚才一样,这里就不再重复;
转载于:https://www.cnblogs.com/bao521/p/6340174.html
webservice CXF入门服务端相关推荐
- 13.Axis创建webservice客户端和服务端
转自:https://blog.csdn.net/chenghui0317/article/details/9318317 一.Axis的介绍 Web Service是现在最适合实现SOA的技术,而A ...
- jmeter web服务器协议,【JMeter4.0学习(三)】之SoapUI创建WebService接口模拟服务端以及JMeter测试SOAP协议性能测试脚本开发(示例代码)...
目录: [阐述]:首先应该遇到了一个共同的问题,JMeter3.2之后就没有WebService(SOAP) Request,后来经过查询网上资料得知其实可以用HTTP请求来操作,结果是一样的. [步 ...
- spring整合cxf,轻松编写webService客户端、服务端
WebService是一种跨编程语言.跨操作系统平台的远程调用技术,广泛应用在实际开发,接口实现,系统集成. 服务端 List item 添加maven依赖 项目中除了spring相关的依赖以外,还需 ...
- 通过Java WebService接口从服务端下载文件
一. 前言 本文讲述如何通过webservice接口从服务器下载文件到客户端.适用于跨系统间的文件交互,传输文件不大的情况(控制在几百M以:):在这种情况下搭建一个FTP服务器增加了系统部署的复杂度和 ...
- java cxf 搭soa,WebService CXF入门问题 SOA 骑着上帝去环游 - 贪吃蛇学院-专业IT技术平台...
package deng; import javax.xml.ws.Endpoint; import com.founder.ws.HelloWorld; import com.founder.ws. ...
- Netty工作笔记0041---Netty入门--服务端2
技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 注意这里,pipeline是管道,这主要是用来处理事件的业务的 而通道,主要是用来读数据和写数据的 ...
- Netty工作笔记0040---Netty入门--服务端1
技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 创建maven项目,然后引入maven包 怎么样添加maven包呢>? 选择project ...
- WebService入门教程(服务端发布WebService)
本篇内容过多,时间紧迫的朋友可以通过目录快速筛选自己想要看的内容,本人接触webservice也没多久,也处于学习阶段,如果有错误请指正,如果已经是大神请略过这篇文章,这篇文章不涉及webservic ...
- 【转】使用Apache CXF开发WebServices服务端
原地址:http://cnjava.blog.51cto.com/1208887/335630 在前一篇的博客中,我使用Xfire1.x来开发了WebServies的服务端. 但是如果你访问Apach ...
最新文章
- 添加摇头刷脸_小区门禁系统开始刷脸的时代,你准备好了吗?
- C++11 auto 关键字学习1
- 全球及中国矿棉板行业运营能力状况与十四五规模预测报告2022年
- 计算机网络基础:IP基础知识笔记
- 在ASP.NET Core中使用brotli压缩
- 防止开源的加拉帕戈斯综合症,系统软件和开源都是手段不是目的
- 由echarts想到的js中的时间类型
- 如何做好产品需求设计和开发
- 威漫哨兵机器人_漫威:哨兵机器人天下无敌?这几位变种人就不把他们放在眼里...
- 42表盘直径是从哪测量_表盘直径怎么算,怎样测量手表表盘的直径
- 利用canvas打造一个炫酷的粒子背景
- flushia系统_IA 系统和应用 第七章 环境组态.pdf
- 内存函数-----Memcmp
- linux cp命令的-f 参数
- 【小树T系列3D打印机安装教程】
- 东偶已逝,桑榆非晚。
- 用户使用手册与测试报告(团队作业)
- 解决not well-formed (invalid token)BUG,xml标签转到txt标签,txt标签转到xml标签,滑动窗口切割图像并且同步标签
- 易宝支付Demo,生产中封装成简洁的代付接口,不用request如何获取项目运行时的真实路径...
- 基于SpringBoot+Vue 实现的OA自动化办公系统
热门文章
- Modular Java
- 让sourceSafe每天自动备份及修复(适用于vss6.0和vss2005)
- html怎么用js播放音频,用Javascript播放音频?
- python 文件修改记录_python基础-文件增删改查
- Cisco服务器怎么安装系统,CISCO服务器Linux系统安装步骤
- php留言板翻页,php翻页函数 - 沐攸的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
- c语言实验一的错误,C语言实验(三)
- 计算机网络安全常见问题,计算机网络安全是指什么?
- linux下dvwa安装教程,在Kali Linux上部署DVWA
- arm-linux-gcc 和Makefile