Web Service学习-CXF开发Web Service实例demo(一)
Web Service是什么?
Web Service不是框架。更甚至不是一种技术。
而是一种跨平台,跨语言的规范
Web Service解决什么问题:
为了解决不同平台,不同语言所编写的应用之间怎样调用问题。比如。有一个C语言写的程序。它想去调用java语言写的某个方法。
集中解决:1,远程调用 2。跨平台调用 3,跨语言调用
实际应用:
1。同一个公司的新,旧系统的整合。Linux上的java应用,去调用windows平台的C应用
2,不同公司的业务整合。业务整合就带来不同公司的系统整合。不同公司的系统可能存在平台不同,语言不同的问题
3,内容聚合。一个应用,比方须要提供,天气预报,股票行情,黄金行情等。
CXF与Web Service的关系
CXF是apache旗下的开源框架,由Celtix+ XFire这两门经典的框架合成。是一套很流行的web service框架。
CXF方式实现Web Service服务demo
1,配置环境变量
在CLASSPATH中加入E:\apache-cxf-2.6.2\lib
新建CXF_HOMEE:\apache-cxf-2.6.2
在PATH中加入 %CXF_HOME%\bin
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
2。使用CXF开发Web Service开发server端
整个项目的文件夹结构(普通java项目):
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
接口:
package com.tgb.service; import javax.jws.WebService; @WebService
public interface HelloWorld{ public String sayHi(String name); }
实现类:
package com.tgb.service.impl; import java.util.Date; import javax.jws.WebService; import com.tgb.service.HelloWorld; @WebService(endpointInterface="com.tgb.service.HelloWorld",serviceName="HelloWorldImpl")
public class HelloWorldImpl implements HelloWorld{ public String sayHi(String name) { return name+"您好! 如今时间为:"+new Date();
} }
測试client:
package com.tgb.client; import javax.xml.ws.Endpoint; import com.tgb.service.HelloWorld;
import com.tgb.service.impl.HelloWorldImpl; public class ServerMain { public static void main(String[] args){ HelloWorld hw=new HelloWorldImpl();
//调用endpoint的publish方法,来公布web service
Endpoint.publish("http://192.168.24.215/hjy",hw);
System.out.println("Web Service暴露成功");
}
}
启动程序:
查看wsdl
3,使用CXF开发WebServiceclient
运行例如以下命令(找到webService的client的工作空间运行)
刷新client项目,可看到例如以下生成的代码:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
编写client调用代码:
package hjy; import com.tgb.service.HelloWorld;
import com.tgb.service.impl.HelloWorldImpl; public class ClientMain { public static void main(String[] args){
HelloWorldImpl factory=new HelloWorldImpl();
//此处返回的仅仅是远程Web Service的代理
HelloWorld hw=factory.getHelloWorldImplPort();
System.out.println(hw.sayHi("hejingyuan"));
}
}
运行结果:
hejingyuan您好!如今时间为:TueJul 28 14:09:07 CST 2015
总结:
使用CXF开发Web Service共同拥有例如以下几个步骤:
1,server端
(1)开发一个Web Service业务接口。
该接口要用@WebService修饰
(2)开发一个Web Service业务实现类。该实现类也须要用@WebService修饰
(3)公布Web Service
2,client
(1)调用CXF提供的wsdl2java工具,依据WSDL文档生成对应的java代码。
WSDL-Web Service Definition Language
不论什么语言实现了Web Service,都须要提供,并暴露WSDL文档
(2)找到wsdl2java所生成类中,一个继承了Service的类
该类的实例可当成工厂来使用
(3)调用Service子类的实例的getXxxPort方法。返回远程Web Service的代理
Web Service学习-CXF开发Web Service实例demo(一)的更多相关文章
- Web Service学习-CXF开发Web Service的权限控制(二)
Web Service怎样进行权限控制? 解决思路:server端要求input消息总是携带实username.password信息,假设没实username和password信息.直接拒绝调用 解决 ...
- 使用CXF开发Web Service服务
1.使用CXF开发Web Service服务端 1.1 开发一个Web Service业务接口,该接口要用@WebService修饰 (1)创建一个Java项目MyServer (2)在MyServe ...
- Web Service学习之一:Web Service原理
一.定义 Web Service 不是框架也不是技术 而是解决远程调用.跨平台调用.跨语言调用问题的一种规范. 二.应用1.同一个公司新.旧系统的整合:比如CRM系统与OA.客服系统相互调用2.不同公 ...
- Web安全学习笔记之DES算法实例详解
转自http://www.hankcs.com/security/des-algorithm-illustrated.html 译自J. Orlin Grabbe的名作<DES Algorith ...
- CTFHub Web题学习笔记(Web前置技能+信息泄露题解writeup)
今天CTFHub正式上线了,https://www.ctfhub.com/#/index,之前有看到这个平台,不过没在上面做题,技能树还是很新颖的,不足的是有的方向的题目还没有题目,CTF比赛时间显示 ...
- Apache CXF实现Web Service(5)—— GZIP使用
Apache CXF实现Web Service(5)-- GZIP使用 参考来源: CXF WebService整合Spring Apache CXF实现Web Service(1)--不借助重量级W ...
- Web Service--第一次接触web service
Web Service 首发于开源中国 1. 背景 中国移动短信网关需求,要能够发送短信.开发材料只有一个短信发送配置:包括ID,password,code,url.一个jar包还有一个老旧的html ...
- 使用CXF开发简单的Web Service-HelloWorld(二)
上篇博文我们介绍了Web Service的基本概念,了解它的基本概念之后,我们这篇博文介绍一个开源的WebService框架-Apache CXF,并实现一个HelloWorld实例. 一.开始之前 ...
- CXF开发WebService
CXF开发Web Service 参考链接 使用 spring 框架来集成 Web Services 开发 浏览器调用接口 大概这样, 没成功 加@WebMethod(action="get ...
随机推荐
- beisen
#include <stdio.h> #include <pthread.h> #include <windows.h> #define N 100 #define ...
- 通过ip获取地址
<?php /** * IP 地理位置查询类 * * @author 马秉尧 * @version 1.5 * @copyright 2005 CoolCode.CN */ class IpLo ...
- 学习笔记:javascript中的Generator函数
最近在学习redux-saga,由于redux-saga需要使用Generator函数,所以下来就回顾了一下Generator Generator 函数是 ES6 提供的一种异步编程解决方案,语法行为 ...
- jQuery hooks源码学习
段落不够清晰,待整理 看jQuery源码的时候,经常见到含有hooks标志的对象,如cssHooks, attrHooks, propHooks, valHooks. 下面对其中的一段进行解读. jQ ...
- oracle 编译包的时候,一直提示正在编译
select b.sid,b.serial#,b.machine,b.terminal,b.program,b.process,b.status from v$lock a , v$session b ...
- EF Code First连接现有数据库
作为一个初入学习.net MVC4 的新手,想写一写今天碰到的问题,做一个总结. 首先我想利用EF Code First来连接我现有数据库,而不是通过EF Code First来自动生成数据库和表. ...
- Caffe+UbuntuKylin14.04_X64+CUDA 6.5配置
在编译Caffe的漫长过程中,经过了一个又一个坑,掉进去再爬出来,挺有趣的.对比原文有修改! LInux下配置安装:(本文档使用同一块NVIDIA显卡进行显示与计算, 如分别使用不同的显卡进行显示和计 ...
- java操作Excel的poi基础语法
创建一个简单的实列 package com.java.poi; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache ...
- Everything Be True FreeCodeCamp
function every(collection, pre) { // Is everyone being true? for(var i in collection){ if(!collectio ...
- C# html代码生成word
首先引入 Microsoft.Office.Interop.Word 其次要先说一下,把一大段html代码直接变成word文件,只能生成doc文件,docx文件应该是不行的 首先我们用IO生成一个do ...