WEBSERVICE之CXF框架开发webservice
之前学习了使用jdk开发webservice服务,现在开始学习使用框架(cxf)开发webservice.
1、准备工作
A、使用cxf开发webservice服务,需要用到apache-cxf-3.0.10.jar的包,并需要将bin目录配置到环境变量中,如:d:\CXF\apache-cxf-3.0.10\bin
B、我使用的是eclips4.6.2
C、JDK要使用1.7以上版本
2、新建工程
2.1 New –》 Java Project
2.2 引入相关jar包
3、写实现类
接口类:
package com.ws.usinterface;
import javax.jws.WebService;
@WebService
public interface HelloWorldService {
public String say();
public String read(String name);
}
接口实现 类:
package com.ws.usinterface;
import javax.jws.WebService;
/**
* 实现类中也需要用@WebService注解成服务类,并且需要指明实现了那个接口及 服务名,这个服务名是在url中访问使用
* @author Administrator
*
*/
@WebService(endpointInterface = "com.ws.usinterface.HelloWorldService",serviceName = "HelloWorld")
public class HelloWorldServiceImpl implements HelloWorldService {
@Override
public String say() {
System.out.println("Hello world");
return "Hello world";
}
@Override
public String read(String param) {
System.out.println(param+" say hello world");
return param+" say hello world";
}
}
注:
@WebService:这个注解之前已经讲了是用来将类注解为webservice服务的,这里再重复加强下记忆
endpintInterface:表示该实现类实现的接口,写完整类名
serviceName 表示服务的名称,可以任意写
4、发布工程
public class Cxfpublich {
/**
* cxf也是采用EndPoint。publich()方法来发布服务的
* @param args
*/
public static void main(String[] args) {
HelloWorldService hw = new HelloWorldServiceImpl();
Endpoint.publish("http://localhost:8089/HelloWorld",hw);
System.out.println("Web Service发布成功!");
}
}
5、 测试服务
服务地址+”?wsdl” http://localhost:8089/HelloWorldWS?wsdl
打开链接后,显示相应的xml,则成功
客户端
1 新建一工程
2 使用工具生成客户端代码
在命令窗口定位到客户端项目的src目录下,通过工具wsdl2java 服务地址(**?wsdl)生成客户端代码
如下:
wsdl2java http://localhost:8089/HelloWorldWS?wsdl
当然前提是,服务已经启动,wsdl文件能访问到
3编写客户端调用代码,调用服务
调用服务工厂(一个继承了service的类)的get**Port方法
public class ClientMain {HelloWorld factory = new HelloWorld();
public static void main(String[] args){
//工厂
//得到服务代理
HelloWorldService hw =factory.getHelloWorldServiceImplPort();
//调用服务方法
hw.say();
hw.read("test");
}
}
总结,
感觉和jdk发布webservcie没有什么区别,唯一的不同大概就是
1、使用到了 endpointInterface 与serviceName
而serviceName的引用,使得我们可以任意指定发布的服务名
2、就是生成客户端使用的工具不一样。
当然这是我个人的观点
以下是我觉得对cxf介绍比较好的一篇文章
http://blog.csdn.net/u010924834/article/details/51661131
WEBSERVICE之CXF框架开发webservice的更多相关文章
- WebService系列二:使用JDK和CXF框架开发WebService
一.使用JDK开发WebService 服务端程序创建: 1.新建一个JDK开发webservice的服务端maven项目JDKWebServiceServer 2. 定义一个接口,使用@WebSer ...
- 利用CXF框架开发webservice
开发服务端代码 1. web.xml文件中添加cxf的servlet 2. 定义接口 @WebService(targetNamespace="http://UserInfo.ws.com& ...
- Eclipse+CXF框架开发Web服务实战
一. 说明 采用CXF框架开发webservice. 所用软件及版本如下. 操作系统:Window XP SP3. JDK:JDK1.6.0_07,http://www.oracle.com/ ...
- webservice第三篇【接口开发webservice、CXF框架使用、IDEA下使用webservice、小例子】
实现接口的webservice 服务端 import javax.jws.WebService; /**面向接口的webservice发布方式 * * */ @WebService public in ...
- 转载 WebService 的CXF框架 WS方式Spring开发
WebService 的CXF框架 WS方式Spring开发 1.建项目,导包. 1 <project xmlns="http://maven.apache.org/POM/4.0 ...
- 【WebService】使用JDK开发WebService(二)
WebService的开发手段 1.使用JDK开发(1.6及以上版本) 2.使用CXF框架开发(工作中) WebService的组成 1.服务器端 2.客户端 使用JDK开发WebService a. ...
- WebService 的CXF框架 WS方式Spring开发
1.建项目,导包. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www ...
- WebService之CXF框架
本文主要包括以下内容 ant工具的使用 利用cxf实现webservice cxf与spring整合 ajax访问webservice ant 工具 1.为什么要用到ant这个工具呢? Ant做为一种 ...
- WebService 的CXF框架 WS独立服务之HelloWorld
WebService:不同系统不同语言的数据交互, CXF主要分为两种服务方式: 1 )JAX-WS:传输数据, xml格式,基于SOAP协议(规范:规定了xml传递数据的编码规范) ; 2 )JAX ...
随机推荐
- Codeforces Round #688(Div 2) D. Checkpoints
思路 第一步,先推导1,0,0,--,0,就是1后面跟了n-1个0的时候 所需要的期望步数 封闭式推导 \(f_n\)代表从n关开始直接通关需要的步数的期望 n为1的情况,即就只有一个1 \(f_1= ...
- PyQt+moviepy音视频剪辑实战2:一个剪裁视频文件精华内容留存工具的实现
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 PyQt+moviepy音视频剪辑实战 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.引言 ...
- 第8.27节 Python中__getattribute__与property的fget、@property装饰器getter关系深入解析
一. 引言 在<第7.23节 Python使用property函数定义属性简化属性访问的代码实现>和<第7.26节 Python中的@property装饰器定义属性访问方法gette ...
- PyQt(Python+Qt)学习随笔:QListWidget获取指定项对应行的row方法
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QListWidget的row方法通过项作为参数,获取到对应项所在行的行号,语法如下: int ro ...
- 函数与函数式编程(生成器 && 列表解析 && map函数 && filter函数)-(四)
在学习python的过程中,无意中看到了函数式编程.在了解的过程中,明白了函数与函数式的区别,函数式编程的几种方式. 函数定义:函数是逻辑结构化和过程化的一种编程方法. 过程定义:过程就是简单特殊没有 ...
- 软工项目WordCount
1.Github项目地址:https://github.com/JameMo/WordCount-for-C 2.在程序的各个模块的开发上耗费的时间: PSP2.1 Personal S ...
- Java程序员普遍存在的面试问题以及应对之道(新书第一章节摘录)
其实大多数Java开发确实能胜任日常的开发工作,但不少候选人却无法在面试中打动面试官.因为要在短时间的面试中全面展示自己的实力,这很需要技巧,而从当前大多数Java开发的面试现状来看,会面试的候选人不 ...
- memcached session会话共享
1 安装依赖包yum install libevent livevent-devel nc -y 2 yum 安装memcachedyum install -y memcached 3 启动memec ...
- 【php安全】eavl函数禁用适用于 php7.* php5系列
php5.4 安装扩展demo php安装suhosin扩展 php版本与suhosin版本: suhosin-0.9.38 支持到php 5.4 php5.4 5.5 5.6 需安装 https:/ ...
- centos 7 配置 mysql 5.7 主从复制
centos 7 配置 mysql 5.7 主从复制 主库:192.168.12.3 从库:192.168.12.2 1. 主库从库所在服务器关闭防火墙Systemctl stop firewalld ...