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, ...
随机推荐
- 数据结构读书笔记(三)(C语言)
栈 顺序实现: 存储结构: #define STACK_INIT_SIZE 10 // 存储空间初始分配量 #define STACK_INCREMENT 2 // 存储空间分配增量 struct S ...
- C#中的正则 Regex类
转义符的总结: 开始数 …………………………………………………………. 3 )Regex.matches() 提取所有符合要求的字符串 string str=@"绩大于80,则奖励50元.语 ...
- 将 mp3 等音乐资源以资源形式嵌入 exe 文件中
引用:http://www.easyx.cn/skills/View.aspx?id=6 本文讲解怎样将 mp3 等音乐资源以资源形式嵌入 exe 文件中,并通过 mciSendString 调用.嵌 ...
- 基于visual Studio2013解决面试题之1004最长等差数列
题目
- USACO inflate
全然背包,转化为0/1背包 dp[i, j] = max(dp[i-1, j], dp[i, j - minutes[i]] + points[i]) /* ID:kevin_s1 PROG:infl ...
- android sim 卡短信读写
因为对短信读写操作的api 被隐藏了 , 我们须要使用<Java反射机制的学习>一文中提到的反射的方法得到隐藏API . 这有一个用例大家能够下载http://zhushou.360.cn ...
- C#.Net操作XML方法二
上面那篇博客,在上面那面博客中是通过System.Xml命名空间中的类来实现对XML文件的创建.删除和改动等操作.接下来再介绍一种方法,在整个的操作过程中,仅仅只是换了个类而已,没什么大惊小怪的. D ...
- 11g r2 模拟OCR和voting disk不可用,完整恢复过程,以及一些注意事项
环境:RHEL5.8 RAC 11.2.0.3.0 1:查看ORC和voting disk信息: In 11g Release 2 your voting disk data is automatic ...
- 解决ORA-28000: the account is locked
原文地址:http://yanwushu.sinaapp.com/ora-28000-the-account-is-locked/ 在oracle中.连续十次尝试登陆不成功.那么此账户将会被锁定(lo ...
- Tomcat详细用法学习(四)
本篇接上一篇<Tomcat详细用法学习(三)>,主要讲解配置虚拟主机.打包web应用成war包和Tomcat的体系结构 对于Tomcat服务器,可以放置多个网站(多个web应用),这就是讲 ...