- 浏览: 7330530 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1546)
- 企业中间件 (236)
- 企业应用面临的问题 (236)
- 小布Oracle学习笔记汇总 (36)
- Spring 开发应用 (54)
- IBatis开发应用 (16)
- Oracle基础学习 (23)
- struts2.0 (41)
- JVM&ClassLoader&GC (16)
- JQuery的开发应用 (17)
- WebService的开发应用 (21)
- Java&Socket (44)
- 开源组件的应用 (254)
- 常用Javascript的开发应用 (28)
- J2EE开发技术指南 (163)
- EJB3开发应用 (11)
- GIS&Mobile&MAP (36)
- SWT-GEF-RCP (52)
- 算法&数据结构 (6)
- Apache开源组件研究 (62)
- Hibernate 学习应用 (57)
- java并发编程 (59)
- MySQL&Mongodb&MS/SQL (15)
- Oracle数据库实验室 (55)
- 搜索引擎的开发应用 (34)
- 软件工程师笔试经典 (14)
- 其他杂项 (10)
- AndroidPn& MQTT&C2DM&推技术 (29)
- ActiveMQ学习和研究 (38)
- Google技术应用开发和API分析 (11)
- flex的学习总结 (59)
- 项目中一点总结 (20)
- java疑惑 java面向对象编程 (28)
- Android 开发学习 (133)
- linux和UNIX的总结 (37)
- Titanium学习总结 (20)
- JQueryMobile学习总结 (34)
- Phonegap学习总结 (32)
- HTML5学习总结 (41)
- JeeCMS研究和理解分析 (9)
最新评论
-
lgh1992314:
[u][i][b][flash=200,200][url][i ...
看看mybatis 源代码 -
尼古拉斯.fwp:
图片根本就不出来好吧。。。。。。
Android文件图片上传的详细讲解(一)HTTP multipart/form-data 上传报文格式实现手机端上传 -
ln94223:
第一个应该用排它网关吧 怎么是并行网关, 并行网关是所有exe ...
工作流Activiti的学习总结(八)Activiti自动执行的应用 -
ZY199266:
获取不到任何消息信息,请问这是什么原因呢?
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息 -
xiaoyao霄:
DestinationSourceMonitor 报错 应该导 ...
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息
package com.easyway.cxf.service; import javax.jws.WebParam; import javax.jws.WebService; import java.util.List; import com.easyway.cxf.model.User; /** * * 采用JaxWS发布服务 * 备注在接口中必须使用@WebService 注解否则出现错误 * * * @author longgangbai * */ @WebService public interface HelloService { /** * The @WebParam annotation is necessary as java interfaces do not store the Parameter name in the .class file. So if you leave out the annotation your parameter will be named arg0. * @param name * @return */ public String hello(@WebParam(name="text")String name); /** * Advanced usecase of passing an Interface in. JAX-WS/JAXB does not * support interfaces directly. Special XmlAdapter classes need to * be written to handle them */ public String sayHi(User user); public String[] getAllUseNames(List<User> userList); }
package com.easyway.cxf.service; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import javax.jws.WebService; import com.easyway.cxf.model.User; /** * * 采用JaxWS发布服务 * * JAX-WS includes many more annotations as well such as: * * @WebMethod - allows you to customize the operation name, exclude the operation from inclusion in the service, etc * @WebParam - allows you to customize a parameter's name, namespace, direction (IN or OUT), etc * @WebResult - allows you to customize the return value of the web service call * * @author longgangbai * */ @WebService(endpointInterface = "com.easyway.cxf.service.HelloService", serviceName = "HelloService") public class HelloServiceImpl implements HelloService { Map<Integer, User> users = new LinkedHashMap<Integer, User>(); public String hello(String username) { return "Hello " + username; } public String sayHi(User user) { users.put(users.size() + 1, user); return "Hello " + user.getUsername(); } public String[] getAllUseNames(List<User> userList) { String[] userListArr=new String[userList.size()]; for (int i=0;i<userList.size();i++) { userListArr[i]=userList.get(i).getUsername(); } return userListArr; } }
package com.easyway.cxf.security; import java.io.IOException; import java.util.HashMap; import java.util.Map; import javax.security.auth.callback.Callback; import javax.security.auth.callback.CallbackHandler; import javax.security.auth.callback.UnsupportedCallbackException; import org.apache.ws.security.WSPasswordCallback; /** * 采用回调方法检测WS调用的安全性 * @author longgangbai * */ public class ServerPasswordHandler implements CallbackHandler{ private Map<String, String> passwords; public ServerPasswordHandler(){ passwords=new HashMap<String, String>(); passwords.put("admin", "admin"); passwords.put("test", "test"); passwords.put("userName", "password"); } public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException { WSPasswordCallback pc = (WSPasswordCallback) callbacks[0]; //获取用户名 String id = pc.getIdentifier(); System.out.println("id==="+id); //获取密码 String password = pc.getPassword(); if(passwords.containsKey(id)){ if(!password.equals(passwords.get(id))){ throw new SecurityException("wrong password"); } }else{ throw new SecurityException("wrong username"); } } }
package com.easyway.cxf.security; import java.io.IOException; import javax.security.auth.callback.Callback; import javax.security.auth.callback.CallbackHandler; import javax.security.auth.callback.UnsupportedCallbackException; import org.apache.ws.security.WSPasswordCallback; /** * 客户端的验证校验代码 * @author longgangbai * */ public class ClientPasswordCallback implements CallbackHandler { public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException { WSPasswordCallback pc = (WSPasswordCallback) callbacks[0]; int usage = pc.getUsage(); System.out.println("identifier: " + pc.getIdentifier()); System.out.println("usage: " + pc.getUsage()); if (usage == WSPasswordCallback.USERNAME_TOKEN) { System.out.println("admin ====="); pc.setPassword("admin"); pc.setIdentifier("admin"); } } }
package com.easyway.cxf.test.client.security; import java.util.HashMap; import java.util.Map; import org.apache.cxf.binding.soap.saaj.SAAJOutInterceptor; import org.apache.cxf.jaxws.JaxWsProxyFactoryBean; import org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor; import org.apache.ws.security.WSConstants; import org.apache.ws.security.handler.WSHandlerConstants; import com.easyway.cxf.security.ClientPasswordCallback; import com.easyway.cxf.service.HelloService; import com.easyway.cxf.test.server.CFX; /** * * @author longgangbai * */ public class CXFClientSecurity { public static void main(String[] args) { JaxWsProxyFactoryBean factory=new JaxWsProxyFactoryBean(); Map<String, Object> outProps = new HashMap<String, Object>(); outProps.put(WSHandlerConstants.ACTION,WSHandlerConstants.USERNAME_TOKEN); outProps.put(WSHandlerConstants.USER, "userName"); outProps.put(WSHandlerConstants.PASSWORD_TYPE, WSConstants.PW_TEXT); outProps.put(WSHandlerConstants.PW_CALLBACK_CLASS, ClientPasswordCallback.class.getName()); WSS4JOutInterceptor wssOut = new WSS4JOutInterceptor(outProps); factory.getOutInterceptors().add(wssOut); factory.getOutInterceptors().add(new SAAJOutInterceptor()); factory.setServiceClass(HelloService.class); //和服务端发送路径一样的 factory.setAddress(CFX.SERVICE_ADDRESS); HelloService helloService=(HelloService)factory.create(); String msg=helloService.hello("xiaobai"); System.out.println("msg="+msg); } }
package com.easyway.cxf.test.client.security; import java.util.HashMap; import java.util.Map; import org.apache.cxf.binding.soap.saaj.SAAJOutInterceptor; import org.apache.cxf.jaxws.JaxWsProxyFactoryBean; import org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor; import org.apache.ws.security.WSConstants; import org.apache.ws.security.handler.WSHandlerConstants; import com.easyway.cxf.security.ClientPasswordCallback; import com.easyway.cxf.service.HelloService; import com.easyway.cxf.test.server.CFX; /** * * @author longgangbai * */ public class CXFClientSecurity { public static void main(String[] args) { JaxWsProxyFactoryBean factory=new JaxWsProxyFactoryBean(); Map<String, Object> outProps = new HashMap<String, Object>(); outProps.put(WSHandlerConstants.ACTION,WSHandlerConstants.USERNAME_TOKEN); outProps.put(WSHandlerConstants.USER, "userName"); outProps.put(WSHandlerConstants.PASSWORD_TYPE, WSConstants.PW_TEXT); outProps.put(WSHandlerConstants.PW_CALLBACK_CLASS, ClientPasswordCallback.class.getName()); WSS4JOutInterceptor wssOut = new WSS4JOutInterceptor(outProps); factory.getOutInterceptors().add(wssOut); factory.getOutInterceptors().add(new SAAJOutInterceptor()); factory.setServiceClass(HelloService.class); //和服务端发送路径一样的 factory.setAddress(CFX.SERVICE_ADDRESS); HelloService helloService=(HelloService)factory.create(); String msg=helloService.hello("xiaobai"); System.out.println("msg="+msg); } }
- cxf.part1.rar (7.1 MB)
- 下载次数: 181
- cxf.part2.rar (7.1 MB)
- 下载次数: 66
- cxf.part4.rar (1.4 MB)
- 下载次数: 65
- cxf.part3.rar (7.1 MB)
- 下载次数: 65
评论
4 楼
phane
2012-03-06
3 楼
haijiaotiger
2011-02-25
是可以跑的。细心一些就好了。
2 楼
longgangbai
2010-05-24
axiang_2898 写道
你所打的包都跑不起来的。
先运行服务端的main方法,在再运行客户端main方法,没有问题哦
1 楼
axiang_2898
2010-05-24
你所打的包都跑不起来的。
发表评论
-
Spring 和Axis2整合相关那些事
2012-12-29 12:58 10416Axis2优劣: 现在用axis2开发一个webse ... -
【转】互联网常见Open API文档资源
2012-07-17 17:22 2413原文出处:http://www.williamlong.i ... -
互联网 免费的WebService接口
2012-07-08 17:25 5654股票行情数据 WEB 服务 ... -
Eclipse 根据ASP.NET WSDL自动生成Axis的WS客户端
2012-06-07 12:52 2876最近研究一下相 ... -
Apache CXF REST WebService简单应用
2011-11-27 17:30 5618<p> 本文目的就项目中的Apache ... -
REST WebService简单应用(测试)
2011-11-27 16:11 4780在项目中许多同事采用Ajax调用REST Web服 ... -
REST WebService简单应用
2011-11-27 15:07 3633最近项目中WebService采用REST风格的WebS ... -
Brap的创建WebService
2011-07-26 10:33 1244通过Brap开发WebService,通过Brap的W ... -
CFX 和Spring 整合Ws Security 出现的问题?
2010-05-05 20:50 4710package com.easyway.cxf.securit ... -
Axis2 XFire CXF 比较
2010-05-03 21:35 4056CXF最新版本:2.2.2 开源服务框架,可以通过API,如 ... -
CXF应用程序开发 WS 多个服务动态访问
2010-05-03 17:37 4477官方网站: https://cwiki.apache. ... -
CXF应用程序开发 WS 采用Simple Frontend 方式简单方便
2010-05-03 16:24 3152关于CXF中的Simple Frontend 的官方网 ... -
CXF应用程序开发 中调用WSDL提供服务的WS (WS的迁移使用)
2010-05-03 15:16 32841。提供wsdl的源在需要的服务端生成客户端源代码 2。在C ... -
CXF和Axis的比较
2010-05-03 14:32 1990在SOA领域,我们认为Web Service是SOA体系的构建 ... -
开发WebService 如何保证它的安全性
2010-05-03 10:16 12859摘要: 概述 Microsoft XML Web Servic ... -
使用CXF中的Aegis开发WS使用
2010-05-02 19:56 3199package com.easyway.cxf.service ... -
XFire容易配置出现的几个异常信息
2009-07-13 10:29 12066今天做一个Flex调用Web服务的程序创建一个WS,由于一 ... -
Web service 原理和 开发
2009-03-13 22:07 10498什么是Web Services ... -
xfire开发客户端密钥参数定制开发应用
2009-03-13 19:19 2728xfire在服务端验证,客户端必须使用相应的用户名称和密码设置 ... -
spring和xfire整合的应用开发的原理和客户端开发方式(一)
2009-03-10 17:01 3116使用xfire常用方式远程服务类访问 package cn. ...
相关推荐
这些jar包是CXF运行的基础,它们提供了诸如WS-I兼容性、WSDL处理、数据绑定、安全性和消息传递等功能。同时,"以及cxf整合spring的实例"表明这个资源还包含了如何将CXF与Spring框架集成的示例代码。Spring是一个流行...
【CXF服务端程序】是基于Apache CXF框架构建的一...在实际开发过程中,除了编写服务接口和实现,我们还需要关注服务的安全性、性能优化以及与其他系统的集成等方面。对于部署,熟悉Servlet容器的配置和管理也是必要的。
在IT行业中,Web服务是应用程序之间进行通信的一种标准方法,而CXF和Spring框架的结合则为开发高质量的Web服务提供了强大的支持。本实例将详细阐述如何利用CXF和Spring来构建Web服务的客户端和服务端。 一、CXF简介...
11. 安全机制:CXF支持多种安全机制,包括基本认证、WS-Security(如用户名令牌、X.509证书)、OAuth等,确保服务的安全性。 八、性能优化 12. 缓存和性能:CXF提供了缓存机制,可以缓存WSDL和XSD,提高服务的响应...
这个标题“cxf开发webservice所用jar包”表明我们正在讨论一组CXF框架所需的JAR文件,这些文件对于利用CXF开发基于Web服务的应用程序至关重要。在描述中提到“cxf-2.4.1整合spring3.0所用jar包”,这暗示了我们使用...
Apache CXF 是一个开源的Java框架,主要用于构建和开发服务导向架构(Service-Oriented Architecture, SOA)和Representational State Transfer(RESTful)应用程序。它提供了多种方式来实现Web服务,包括Java API ...
在IT行业中,Web服务是一种广泛使用的通信协议,用于应用程序之间的数据交换。本示例将详细介绍如何使用Apache CXF和Spring框架来开发基于HTTPS的安全Web服务,包括服务端和客户端的实现。 Apache CXF是一个开源的...
REST(Representational State Transfer)是一种网络应用程序的设计风格和开发方式,基于HTTP协议,用于简化分布式系统之间的交互。CXF提供了一套强大的工具,支持开发RESTful服务,包括注解驱动的API(如JAX-RS)和...
6. **传输和协议**:CXF支持多种传输协议,包括HTTP、HTTPS、JMS、FTP等,同时也支持各种WS-*协议,如WS-Security、WS-Addressing等,确保Web服务的安全性和可扩展性。 7. **开发工具**:CXF提供了CXF-Tools,这是...
【标题】:“CXF服务器端演示程序实例” 在Java开发中,Apache CXF是一个广泛使用的开源...在实践中,你可能会遇到如异常处理、安全性配置、性能优化等更多复杂的主题,这些都是在掌握基础之后需要逐步学习和掌握的。
【正文】 在IT行业中,开发RESTful服务是构建现代Web应用程序的关键部分,它提供了一种轻量级、灵活且...在实际开发中,你还可以利用CXF提供的高级特性,如拦截器、安全性、数据绑定等,来扩展和优化你的REST服务。
CXF(CXF: Composite eXtensible Framework)是一个开源的Java框架,它主要用于构建和服务导向架构(SOA)的应用程序。本教程集合是为初学者精心准备的,旨在帮助你全面了解并掌握CXF的开发技能。让我们逐一探讨这些...
**Spring框架**:Spring是一个全面的Java企业级应用开发框架,提供了依赖注入(DI)和面向切面编程(AOP)等核心特性,使得应用程序的开发更为简洁、模块化。在SSM中,Spring作为基础架构层,负责管理对象生命周期和整个...
2. **安全性**:CXF提供多种安全机制,如SSL/TLS加密、WS-Security(Web Services Security)支持,可以实现身份验证、消息完整性及保密性。 3. **拦截器和插件**:CXF允许自定义拦截器和插件,扩展服务行为,如...
3. **强大的扩展性**:CXF可以通过插件机制添加自定义功能,如安全性和数据绑定。 **八、源码分析** 对于源码级别的理解,可以查看CXF项目的源代码,理解其内部的工作原理,如服务的生命周期管理、消息处理和协议...
CXF,全称Apache CXF,是一个开源的Java框架,用于构建和开发高质量、面向服务的应用程序。CXF不仅支持SOAP,还支持RESTful服务,使其成为企业级开发的强大工具。本指南将深入探讨CXF的使用,帮助开发者理解和掌握其...
在IT行业中,Web服务是一种允许不同应用程序之间进行通信的关键技术。SOAP(Simple Object Access Protocol)是一种基于XML的协议,用于交换结构化的、机器可读的数据。CXF框架是Apache组织提供的一款开源工具,它...
Apache CXF 主要用于构建服务导向架构(SOA)中的Web服务,而Spring则是一个强大的应用程序框架和依赖注入容器。当这两个框架结合使用时,可以创建高效、灵活且易于维护的服务。 **Apache CXF简介** Apache CXF 是...
另一方面,Spring 框架是 Java 应用程序开发的核心组成部分,提供了依赖注入、面向切面编程等功能。将 CXF 与 Spring 集成,可以充分利用两者的优势,创建高效、灵活的服务。 首先,为了在 Spring 应用程序中使用 ...
在"apache cxf 开发所需的 开发包3"中,我们可以预想这个压缩包包含的是CXF开发的第三个部分,可能包括一些特定的库文件和组件,这些是构建和运行CXF应用程序所必需的。这部分可能包含以下关键组件: 1. **CXF JAX-...