WebService-03-使用CXF开发服务端和客户端
写在前面的话
JaxWsServerFactoryBean方式
服务接口
package com.wds.ws.server.cxf; import javax.jws.WebService; /**
* 此处必须添加@WebServer注解,若不添加,则发布的服务当中无任何方法
* @author wds
*
*/
@WebService
public interface HelloService {
public String sayHello(String name);
}
服务实现
package com.wds.ws.server.cxf; import java.util.Date; /**
* 服务实现类
* @author wds
*
*/
public class HelloServiceImpl implements HelloService { @Override
public String sayHello(String name) {
String s = new Date() + " " + name;
System.out.println("Server:" + s);
return s;
} }
发布类
package com.wds.ws.server.cxf; import org.apache.cxf.jaxws.JaxWsServerFactoryBean; /**
* 使用CXF的ServerFactoryBean发布服务
* @author wds
*
*/
public class JaxWsServerFactoryBeanPublish { /**
* @param args
*/
public static void main(String[] args) { //实例化ServerFactoryBean
JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean(); //发布服务的地址
factory.setAddress("http://localhost:567/JaxWsServerFactoryBeanHelloworld"); //提供服务类的类型(接口类型)
factory.setServiceClass(HelloService.class); //提供服务的实例
factory.setServiceBean(new HelloServiceImpl()); //发布服务
factory.create();
} }
客户端
wsdl2java -p com.wds.client.jaxws http://localhost:567/JaxWsServerFactoryBeanHelloworld?wsdl
关于wsdl2java的命令在WebService-02中也有说过,此处增加了一p参数,此参数说明指定包结构,复制到客户端的工程中,测试类如下:
package com.wds.client.jaxws;
public class JaxWsClientTest {
/**
* @param args
*/
public static void main(String[] args) {
HelloServiceService factory = new HelloServiceService();
HelloService hs = factory.getHelloServicePort();
System.out.println(hs.sayHello("wds"));
}
}
ServerFactoryBean
服务的接口和实现与JaxWsServerFactoryBean无特别大区别,只是无须写@WebService注解,发布类代码如下:
package com.wds.ws.server.cxf; import org.apache.cxf.frontend.ServerFactoryBean; /**
* 使用CXF的ServerFactoryBean发布服务
* @author wds
*
*/
public class ServerFactoryBeanPublish { /**
* @param args
*/
public static void main(String[] args) { //实例化ServerFactoryBean
ServerFactoryBean factory = new ServerFactoryBean(); //发布服务的地址
factory.setAddress("http://localhost:5678/ServerFactoryBeanHelloworld"); //提供服务类的类型
factory.setServiceClass(HelloServiceImpl.class); //提供服务的实例
factory.setServiceBean(new HelloServiceImpl()); //发布服务
factory.create();
} }
其与JaxWsServerFactoryBean发布也很类似,只是在提供服务类的类型时,此处指定了实现类。
WebService-03-使用CXF开发服务端和客户端的更多相关文章
- 使用Apache CXF开发WebServices服务端、客户端
在前一篇的博客中,我使用Xfire1.x来开发了WebServies的服务端. 但是如果你访问Apache的官网,可以看到xfire已经被合并了. 最新的框架叫做CXF. Apache CXF = C ...
- WebService学习总结(四)--基于CXF的服务端开发
本节将实践目前最流行的第二种web service 发布和调试框架 CXF Apache CXF 是一个开放源代码框架,提供了用于方便地构建和开发 Web 服务的可靠基础架构.它允许创建高性能和可扩 ...
- app开发中如何利用sessionId来实现服务端与客户端保持回话
app开发中如何利用sessionId来实现服务端与客户端保持回话 这个问题太过于常见,也过于简单,以至于大部分开发者根本没有关注过这个问题,我根据和我沟通的开发者中,总结出来常用的方法有以下几种: ...
- 用beego开发服务端应用
用beego开发服务端应用 说明 Quick Start 安装 创建应用 编译运行 打包发布 代码生成 开发文档 目录结构说明 使用配置文件 beego默认参数 路由设置 路由的表述方式 直接设置路由 ...
- WCF开发的流程-服务端和客户端之间的通讯(内含demo讲解)
讲解技术之前,恳请博友让我说几句废话.今天是我第一在博客园发布属于自己原创的博文(如有雷同,那是绝对不可能的事,嘿嘿).之前一直是拜读各位博友的大作,受益匪浅的我在这对博友们说声谢谢,谢谢你们的共享! ...
- IDEA创建WebService服务端与客户端
创建服务端 一.file–>new–>project 二.点击next后输入服务端名,点击finish,生成目录如下 三.在 HelloWorld.Java 文件中右击,选 Tools 的 ...
- 【.NET6】gRPC服务端和客户端开发案例,以及minimal API服务、gRPC服务和传统webapi服务的访问效率大对决
前言:随着.Net6的发布,Minimal API成了当下受人追捧的角儿.而这之前,程序之间通信效率的王者也许可以算得上是gRPC了.那么以下咱们先通过开发一个gRPC服务的教程,然后顺势而为,再接着 ...
- C# 编写WCF简单的服务端与客户端
http://www.wxzzz.com/1860.html Windows Communication Foundation(WCF)是由微软开发的一系列支持数据通信的应用程序框架,可以翻译为Win ...
- python thrift 服务端与客户端使用
一.简介 thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发.它结合了功能强大的软件堆栈和代码生成引擎,以构建在 C++, Java, Python, PHP, Ruby, Erlang, ...
随机推荐
- 关于caffe-windows中 compute_image_mean.exe出现的问题
这两天有兴致装了下caffe.感受下这个框架. 可是在这个过程中遇到非常多问题.我把碰到的问题和解决方式写下,便于后人高速上手. compute_image_mean.exe 编译出来后.运行数据变换 ...
- 双击GridView查看详情
效果如下: protected void gvEquData_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowTy ...
- hdu5336 Walk Out
hdu5336 Walk Out 题意是:入口:地图的左上角,出口,地图的右上角,求所经过的路径的二进制数最小 照着题解敲了一遍 思路是:首先 二进制 的 位数 越小 越好,其次 二进制的前缀零越多 ...
- HTML5的优缺点是什么?
HTML5的优缺点是什么?作为HTML的第五次重大修改,HTML5有哪些改进?HTML5又有哪些缺点? 网络标准 HTML5本身是由W3C推荐出来的,它的开发是通过谷歌.苹果,诺基亚.中国移动等几百家 ...
- TIA Portal V12不能添加新的CPU
4核AMD 740,10G内存,Win7 X64,打开TIA Portal V12,依旧慢如牛,鼠标指针转啊转,TIA窗口写着 无响应... 真没志气,STM32要是玩转了,坚决不用这老牛. 上图为正 ...
- 网站遭遇DDOS简易处理
网站遭遇DDOS攻击 netstat -an | grep ESTABLISHED 我们看到有大量的链接存在着,并且都是ESTABLISHED状态 for i in `netstat -an | gr ...
- USACO inflate
全然背包,转化为0/1背包 dp[i, j] = max(dp[i-1, j], dp[i, j - minutes[i]] + points[i]) /* ID:kevin_s1 PROG:infl ...
- linux下tomcat shutdown后 java进程依然存在
今天遇到一个非常奇怪的问题,如标题所看到的: linux下(之所以强调linux下,是由于在windows下正常),运行tomcat ./shutdown.sh 后,尽管tomcat服务不能正常訪问了 ...
- Swift初体验 (一)
// 声明一个常量 let maxNumberOfStudents: Int = 47 // 声明一个变量,假设没有在声明的时候初始化,须要显示的标注其类型 var currentNumberOfSt ...
- BMP文件结构
1. 位图文件头 位图文件头包含有关于文件类型.文件大小.存放位置等信息,在Windows 3.0以上版本的位图文件中用BITMAPFILEHEADER结构来定义: typedef struct ta ...