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;
@WebService
public 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 {
@Override
public String sayHello(String name) {
// TODO Auto-generated method stub
return 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客户端的方法来创建。


     本文转自stock0991 51CTO博客,原文链接:http://blog.51cto.com/qing0991/1537678,如需转载请自行联系原作者








使用CXF开发Web Service服务的更多相关文章

  1. Web Service学习-CXF开发Web Service实例demo(一)

    Web Service是什么? Web Service不是框架.更甚至不是一种技术. 而是一种跨平台,跨语言的规范 Web Service解决什么问题: 为了解决不同平台,不同语言所编写的应用之间怎样 ...

  2. ubuntu下安装 gSOAP 用于C/C++开发web service服务端与客户端

    昨天在ubuntu下进行安装gSOAP,费了很多时间,没成功,今天又来找了大量教程资料,终于一次成功,这里写下自己的安装步骤和方法,供大家参考. 首先下载gsoap,我下载的是gsoap-2.8.1. ...

  3. Linux下用gSOAP开发Web Service服务端和客户端程序

    网上本有一篇流传甚广的C版本的,我参考来实现,发现有不少问题,现在根据自己的开发经验将其修改,使用无误:另外,补充同样功能的C++版本,我想这个应该更有用,因为能用C++,当然好过受限于C. 1.gS ...

  4. 使用axis开发web service服务端

    一.axis环境搭建 1.安装环境 JDK.Tomcat或Resin.eclipse等. 2.到 http://www.apache.org/dyn/closer.cgi/ws/axis/1_4下载A ...

  5. Linux下用gSOAP开发Web Service服务端和客户端程序(一)

    1.功能说明: 要开发的Web Service功能非常简单,就是一个add函数,将两个参数相加,返回其和. 2.C版本的程序: (1)头文件:SmsWBS.h,注释部分不可少,url部分的IP必须填写 ...

  6. Web Service学习-CXF开发Web Service的权限控制(二)

    Web Service怎样进行权限控制? 解决思路:server端要求input消息总是携带实username.password信息,假设没实username和password信息.直接拒绝调用 解决 ...

  7. 基于Apache CXF的Web Service服务端/客户端

    转自:https://www.aliyun.com/zixun/wenji/1263190.html CXF服务端: package com.sean.server; import javax.jws ...

  8. 基于JAX-WS的Web Service服务端/客户端 ;JAX-WS + Spring 开发webservice

    一.基于JAX-WS的Web Service服务端/客户端 下面描述的是在main函数中使用JAX-WS的Web Service的方法,不是在web工程里访问,在web工程里访问,参加第二节. JAX ...

  9. 开发Web Service的几种方式

    本文作者在学习使用Java开发Web Service(不包括Restful)时,由于不知道Java有这么多框架支持开发Web Service一度陷入迷惘,不知道这些框架各有 什么不同,各有什么优缺点. ...

随机推荐

  1. MySQL学习之路5-数据表的常用操作

    排序 :order by  desc select * from <tablename> order by <字段名> desc:order by默认升序 desc 降序 分组 ...

  2. 21.1 Math(数学运算)方法使用 、工具类

    package day21_static.meathDemo; //Math: 包含一些基本的数学运算方法 //从api中搜Math,它都用的static修饰. public class MethDe ...

  3. 《深入理解 Java 虚拟机》笔记整理

    正文 一.Java 内存区域与内存溢出异常 1.运行时数据区域 程序计数器:当前线程所执行的字节码的行号指示器.线程私有. Java 虚拟机栈:Java 方法执行的内存模型.线程私有. 本地方法栈:N ...

  4. scrapy版本爬取某网站,加入了ua池,ip池,不限速不封号,100个线程爬崩网站

    目录 scrapy版本爬取妹子图 关键所在下载图片 前期准备 代理ip池 UserAgent池 middlewares中间件(破解反爬) settings配置 正题 爬虫 保存下载图片 scrapy版 ...

  5. Thinking in Java,Fourth Edition(Java 编程思想,第四版)学习笔记(十二)之Error Handling with Exceptions

    The ideal time to catch an error is at compile time, before you even try to run the program. However ...

  6. L5语言模型与数据集

    本次实验使用的数据下载: jaychou_lyrics.txt 链接:https://pan.baidu.com/s/1LJSrkpV84YF61OPmjIHGIw 提取码:dj53 语言模型 一段自 ...

  7. timer和ScheduledThreadPoolExecutor定时任务和每日固定时间执行

    //ScheduledThreadPoolExecutor每三秒执行一次 public static void main(String[] args) {        ScheduledThread ...

  8. Springboot:thymeleaf模板(八)

    存放位置:resources\templates 访问方式:通过Controller请求访问,不可直接访问(相当于web项目的WEB-INF目录) 环境依赖: <!--thymeleaf模板支持 ...

  9. iview使用之怎样通过render函数在tabs组件中添加标签

    在实际项目开发中我们通常会遇到一些比较'新颖'的需求,而这时iview库里往往没有现成可用的组件示例,所以我们就需要自己动手翻阅IviewAPI进行自定义一些组件,也可以说是将iview库里的多种组件 ...

  10. react: typescript custom hooks useAsyncTable

    define basic data: const SET_QUERY = "SET_QUERY"; const TOGGLE_LOADING = "TOGGLE_LOAD ...