使用CXF开发Web Service服务
1、使用CXF开发Web Service服务端
1.1 开发一个Web Service业务接口,该接口要用@WebService修饰
(1)创建一个Java项目MyServer

(2)在MyServer项目中创建一个接口HelloWorld

|
1
2
3
4
5
6
|
package com.xju.ws;
import javax.jws.WebService;
@WebServicepublic interface HelloWorld {
String sayHello(String name);} |
1.2 开发一个Web Service实现类,实现类也需要用@WebService修饰

|
1
2
3
4
5
6
7
8
9
10
11
|
package com.xju.ws.impl;
import javax.jws.WebService;
import com.xju.ws.HelloWorld;
@WebService(endpointInterface = "com.xju.ws.HelloWorld", serviceName = "HelloWorldWs")
public class HelloWorldWs implements HelloWorld {
@Overridepublic String sayHello(String name) {
// TODO Auto-generated method stubreturn null;
}} |
1.3 使用Endpoint类的静态方法来发布WebService

|
1
2
3
4
5
6
7
8
9
10
11
|
package com.xju.ws.pub;
import javax.xml.ws.Endpoint;
import com.xju.ws.HelloWorld;
import com.xju.ws.impl.HelloWorldWs;
public class ServerMain {
public static void main(String[] args) {
HelloWorld hw=new HelloWorldWs();
Endpoint.publish("http://127.0.0.1:8080/test", hw);
System.out.println("发布成功");
}} |
备注:在运行中必须添加CXF2.7运行库。

2 使用CXF开发Web Service客户端
2.1 调用CXF提供的wsdl2java工具,根据WSDL文件生成相应的Java代码

在DOS中进入当前项目的src目录下,如输入下命令:
wsdl2java -frontend jaxws21 http://127.0.0.1:8080/test?wsdl

备注:加入参数-frontend jaxws21,为了防止出现CXF自带的javax.xml.service 版本高过jdk的javax.xml.service时报错:构造函数 Service(URL, QName, WebServiceFeature[]未定义。
2.2 找到wsdl2java所生成类中,一个继承了Service的类,该类的实例当成工厂来使用

2.3 调用Service子类的实例的getXxxPort方法,返回远程WebService代理
|
1
2
3
4
5
6
7
8
9
10
|
package com.xju.publish;
import com.xju.ws.HelloWorld;
import com.xju.ws.impl.HelloWorldWs;
public class ClientMain {
public static void main(String[] args) {
HelloWorldWs factory=new HelloWorldWs();
HelloWorld hw=factory.getHelloWorldWsPort();System.out.println(hw.sayHello("yyq"));
}} |
运行结果:
yyq,你好!现在时间是:Sun Aug 10 23:51:39 CST 2014
备注:此处也可以使用创建Web Service客户端的方法来创建。
使用CXF开发Web Service服务的更多相关文章
- Web Service学习-CXF开发Web Service实例demo(一)
Web Service是什么? Web Service不是框架.更甚至不是一种技术. 而是一种跨平台,跨语言的规范 Web Service解决什么问题: 为了解决不同平台,不同语言所编写的应用之间怎样 ...
- ubuntu下安装 gSOAP 用于C/C++开发web service服务端与客户端
昨天在ubuntu下进行安装gSOAP,费了很多时间,没成功,今天又来找了大量教程资料,终于一次成功,这里写下自己的安装步骤和方法,供大家参考. 首先下载gsoap,我下载的是gsoap-2.8.1. ...
- Linux下用gSOAP开发Web Service服务端和客户端程序
网上本有一篇流传甚广的C版本的,我参考来实现,发现有不少问题,现在根据自己的开发经验将其修改,使用无误:另外,补充同样功能的C++版本,我想这个应该更有用,因为能用C++,当然好过受限于C. 1.gS ...
- 使用axis开发web service服务端
一.axis环境搭建 1.安装环境 JDK.Tomcat或Resin.eclipse等. 2.到 http://www.apache.org/dyn/closer.cgi/ws/axis/1_4下载A ...
- Linux下用gSOAP开发Web Service服务端和客户端程序(一)
1.功能说明: 要开发的Web Service功能非常简单,就是一个add函数,将两个参数相加,返回其和. 2.C版本的程序: (1)头文件:SmsWBS.h,注释部分不可少,url部分的IP必须填写 ...
- Web Service学习-CXF开发Web Service的权限控制(二)
Web Service怎样进行权限控制? 解决思路:server端要求input消息总是携带实username.password信息,假设没实username和password信息.直接拒绝调用 解决 ...
- 基于Apache CXF的Web Service服务端/客户端
转自:https://www.aliyun.com/zixun/wenji/1263190.html CXF服务端: package com.sean.server; import javax.jws ...
- 基于JAX-WS的Web Service服务端/客户端 ;JAX-WS + Spring 开发webservice
一.基于JAX-WS的Web Service服务端/客户端 下面描述的是在main函数中使用JAX-WS的Web Service的方法,不是在web工程里访问,在web工程里访问,参加第二节. JAX ...
- 开发Web Service的几种方式
本文作者在学习使用Java开发Web Service(不包括Restful)时,由于不知道Java有这么多框架支持开发Web Service一度陷入迷惘,不知道这些框架各有 什么不同,各有什么优缺点. ...
随机推荐
- 开启sftp服务日志并限制sftp访问目录
目录导航 目录导航 开启sftp日志 修改sshd_config 修改syslogs 重启服务查看日志 限制sftp用户操作目录 前提说明 1. home目录做根目录 2. 单独创建目录做根目录 方法 ...
- 家庭版记账本app开发进度相关界面的规划
总的app界面包括四个页面,页面可以来回滑动.设计的时候就和微信的四个页面类似. 由于没有找到合适的图标进行替换,在此仍应用微信对应的四个图标. 总的四个页面是: 1.增加收入或者支出的小账单.当点击 ...
- flask-宏
flask-宏 模板中的宏跟python中的函数类似,可以传递参数,但是不能有返回值,可以将一些经常用到的代码片段放到宏中,然后把一些不固定的值抽取出来当成一个变量,使用宏的时候,参数可以为默认值. ...
- Python爬虫系列(四):Beautiful Soup解析HTML之把HTML转成Python对象
在前几篇文章,我们学会了如何获取html文档内容,就是从url下载网页.今天开始,我们将讨论如何将html转成python对象,用python代码对文档进行分析. (牛小妹在学校折腾了好几天,也没把h ...
- AD颗粒化密码规则策略
我们在第一次设定密码规则的时候,通常会在根节点或者默认组策略中设置 如果,我们在后期运维过程中,有一些特殊用户需要设置额外的密码策略,我们要如何操作呢? 可能,有些同学会在这些特殊用户对应的OU下在创 ...
- shell命令-while语句
loop=1 while [ "$loop" -le 10 ] do echo "loop:$loop" loop=$(($loop+2)) done
- Mac Jenkins+fastlane 简单几步实现iOS自动化打包发布 + jenkins节点设置
最近在使用jenkins 实现ios自动化打包发布蒲公英过程实践遇到了一些坑,特意记录下来方便有需要的人. 进入正题: 一.安装Jenkins 1.Mac上安装Jenkins 遇到到坑 因为 Jenk ...
- 从3dMax导出供threeJS使用的带动作模型与加载
评论区发现的建议,最近没空测试,先贴这 还有好多人说找不到插件的 https://pan.baidu.com/s/1Q5g0... 密码:b43e . 应该是他们现在只是维护blender,只有这个的 ...
- Python-元组tuple、列表list、字典dict
1.元组tuple(1)元组是有序列表,有不可见的下标,下标从0开始(2)元组的数据是相对固定的,数据不能增删改,他的一个重要用途是保存固定的.安全要求高的数据(3)元组用小括号()括起来,空元组定义 ...
- 全网最全最细的fiddler使用教程以及工作原理
目录:导读 一.Fiddler抓包工具简介 二.Fiddler工作原理 三.Fiddler安装 四.Fiddler界面介绍 五.Fiddler菜单栏介绍 六.Fiddler工具栏介绍 七.Fiddl ...