- 浏览: 138663 次
文章分类
最新评论
-
wangyudong:
很有帮助的代码实例,测试Spring Boot REST AP ...
1、springboot入门案例helloworld与集成hibernate -
wangyudong:
学习了,的确是一个非常好的Spring boot实例,很快就写 ...
1、springboot入门案例helloworld与集成hibernate
cxf简单java项目案例
IHelloWorld.java
实现类HelloWorldImpl.java
发布服务demo.java
客户端
通过cmd,到指定目录执行 wsdl2java http://132.126.1.98/helloDemo?wsdl
得到客户端相关代码
客户端调用服务Demo.java
cxf+spring
服务器端
applicationContext.xml
客户端
applicationContext.xml
测试demo.java
详情看源码
IHelloWorld.java
package com.chen.ws; import java.util.List; import java.util.Map; import javax.jws.WebService; import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; import com.chen.adapter.AuthXmlAdapter; import com.chen.pojo.Pet; import com.chen.pojo.User; @WebService public interface IHelloWorld { public String hello(); public List<Pet> getPetsByUser(User user); /* * cxf不直接Map<String,Pet>类型,需要自己实现转换器 */ @XmlJavaTypeAdapter(AuthXmlAdapter.class)public Map<String,Pet> getAllPets(); }
实现类HelloWorldImpl.java
package com.chen.ws.impl; import java.util.Date; import java.util.List; import java.util.Map; import javax.jws.WebService; import com.chen.pojo.Pet; import com.chen.pojo.User; import com.chen.service.UserService; import com.chen.ws.IHelloWorld; @WebService(endpointInterface="com.chen.ws.IHelloWorld", serviceName="HelloWorldImpl") public class HelloWorldImpl implements IHelloWorld { @Override public String hello() { return "hello world! date:"+new Date(); } @Override public List<Pet> getPetsByUser(User user) { UserService userService = new UserService(); return userService.getPetsByUser(user); } @Override public Map<String, Pet> getAllPets() { UserService userService = new UserService(); return userService.getAllPets(); } }
发布服务demo.java
package com.chen.demo; import java.io.IOException; import java.io.PrintWriter; import javax.xml.ws.Endpoint; import org.apache.cxf.interceptor.LoggingInInterceptor; import org.apache.cxf.interceptor.LoggingOutInterceptor; import org.apache.cxf.jaxws.EndpointImpl; import com.chen.interceptor.AuthInterceptor; import com.chen.ws.IHelloWorld; import com.chen.ws.impl.HelloWorldImpl; public class ServiceMain { public static void main(String[] args) throws IOException{ IHelloWorld hw = new HelloWorldImpl(); EndpointImpl ep = (EndpointImpl) Endpoint.publish("http://132.126.1.98/helloDemo", hw); //PrintWriter pi = new PrintWriter("D:/chen/work/framework/cxf_demo01/src/in.txt"); //PrintWriter po = new PrintWriter("D:/chen/work/framework/cxf_demo01/src/out.txt"); //添加拦截器 //ep.getInInterceptors().add(new LoggingInInterceptor()); //ep.getOutInterceptors().add(new LoggingOutInterceptor()); ep.getInInterceptors().add(new AuthInterceptor()); System.out.println("发布成功!"); } }
客户端
通过cmd,到指定目录执行 wsdl2java http://132.126.1.98/helloDemo?wsdl
得到客户端相关代码
客户端调用服务Demo.java
package com.chen.demo; import java.util.List; import org.apache.cxf.endpoint.Client; import org.apache.cxf.frontend.ClientProxy; import org.apache.cxf.interceptor.LoggingOutInterceptor; import com.chen.interceptor.AuthInterceptor; import com.chen.ws.Entry; import com.chen.ws.IHelloWorld; import com.chen.ws.Pet; import com.chen.ws.StringPet; import com.chen.ws.User; import com.chen.ws.impl.HelloWorldImpl; public class ClientMain { public static void main(String[] args) { HelloWorldImpl factory = new HelloWorldImpl(); IHelloWorld hw = factory.getHelloWorldImplPort(); //添加拦截器 Client client = ClientProxy.getClient(hw); //client.getInInterceptors().add(new LoggingInInterceptor()); client.getOutInterceptors().add(new LoggingOutInterceptor()); client.getOutInterceptors().add(new AuthInterceptor("chen","chen")); System.out.println(hw.hello()); User u1 = new User(); u1.setId(1L); u1.setName("chen1"); List<Pet> pets = hw.getPetsByUser(u1); for(Pet obj : pets){ System.out.println(obj.getName()); } StringPet res = hw.getAllPets(); for(Entry entry : res.getEntries()){ System.out.println(entry.getKey()+": "+entry.getValue().getId()+" "+entry.getValue().getName()); } } }
cxf+spring
服务器端
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:p="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd "> <!-- (4)、导入cxf提供的Schema,XML配置文件 jaxws--> <!-- web应用的类加载路径classpath有两类: A、WEB-INF/classes目录 B、WEB-INF/lib目录下 --> <!-- (5)、导入cxf配置文件 --> <import resource="classpath:META-INF/cxf/cxf.xml"/> <import resource="classpath:META-INF/cxf/cxf-servlet.xml"/> <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml"/> <!-- (6)、配置endpoint implementor 服务提供者 两种形式 A:直接给定服务提供者的类名(不能使spring自动注入) com.chen.ws.impl.HelloWorldImpl B:设置为一个bean引用,要在bean的id前加上# address 发布地址 --> <bean id="helloWorld" class="com.chen.ws.impl.HelloWorldImpl"> <property name="userService" ref="userService" /> </bean> <jaxws:endpoint implementor="#helloWorld" address="/helloDemo"> <!-- (8)、添加拦截器 --> <jaxws:inInterceptors> <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"></bean> <bean class="com.chen.interceptor.AuthInterceptor"></bean> </jaxws:inInterceptors> </jaxws:endpoint> <!-- (7)、配置业务层service bean --> <bean id="userService" class="com.chen.service.UserService"/> </beans>
客户端
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:p="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd "> <!-- (4)、导入cxf提供的Schema,XML配置文件 jaxws--> <!-- web应用的类加载路径classpath有两类: A、WEB-INF/classes目录 B、WEB-INF/lib目录下 --> <!-- (5)、导入cxf配置文件 --> <import resource="classpath:META-INF/cxf/cxf.xml"/> <import resource="classpath:META-INF/cxf/cxf-servlet.xml"/> <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml"/> <!-- (6)、配置client --> <jaxws:client id="hw" serviceClass="com.chen.ws.IHelloWorld" address="http://132.126.1.98/helloDemo"> <jaxws:outInterceptors> <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"></bean> <bean class="com.chen.interceptor.AuthInterceptor"> <constructor-arg value="chen"/> <constructor-arg value="chen"/> </bean> </jaxws:outInterceptors> </jaxws:client> </beans>
测试demo.java
package com.chen.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import com.chen.ws.IHelloWorld; @Controller @RequestMapping("/demo") public class DemoController { @Autowired private IHelloWorld hw ; @RequestMapping("hello") public String hello(){ hw.hello(); return "hello"; } }
详情看源码
- cxf_demo01.rar (15.8 KB)
- 下载次数: 0
- cxf_demo02_client.rar (24.5 KB)
- 下载次数: 0
- cxf_spring_demo03_server.rar (8.2 MB)
- 下载次数: 0
- cxf_spring_demo04_client.rar (8.9 MB)
- 下载次数: 0
发表评论
-
tomcat学习一(简单web服务器示例)
2016-09-20 17:14 487Request.java package com.chen ... -
8、在docker上部署简单javaweb应用
2016-04-24 19:12 8971、创建容器javaweb1,并添加数据卷便于将安装文件共享到 ... -
7、Docker容器的数据管理
2016-04-24 17:56 1159一、Docker容器的数据卷 ... -
6、Docker容器的网络连接
2016-04-24 17:54 1718一、Docker容器的网络基础 dock ... -
4、Docker镜像
2016-04-22 09:05 845一、什么是Docker镜像 ... -
5、Docker客户端和守护进程
2016-04-22 09:04 1019一、Docker的C/S模式 ... -
3、Docker容器常用命令与在容器中部署静态网站
2016-04-22 09:04 900一、容器的基本操作 ... -
2、Docker简介及docker组成部分
2016-04-22 09:03 17881、Docker提供了一个容器 ... -
1、Ubuntu14.04安装docker
2016-04-22 09:02 706一、安装前检查 1、内核版本 uname - ... -
6、java连接redis集群
2016-04-18 18:26 26451、使用Jedis 连接集群会报 MOVED错误 packag ... -
redis集群搭建
2016-04-18 16:15 593redis-cli -h 127.0.0.1 -p 6749 ... -
ubuntu14.04卸载redis并手动安装redis-3.0
2016-04-18 16:14 11561、ubuntu 卸载redis 1)卸载软件 ... -
redis五种数据类型常用基本命令总结
2016-04-14 19:00 758redis-cli 启动redis客户端,连接到redis服务 ... -
java连接远程服务器redis常遇问题
2016-04-14 18:58 32551、先在本地CMD命令中ping IP地址,网络是否正常 2、 ... -
redis虚拟机环境搭建与安装redis
2016-04-12 09:14 1785下载VMware 下载ubuntu14.iso 在VMware ... -
dubbo入门案例
2016-04-07 19:47 1220windows安装zookeeper 把下载的zookeepe ... -
spring mvc教程视频
2016-01-18 17:29 8141. 韩顺平 Spring视频教程 http://www.yu ... -
Redis与Memcached比较
2016-01-13 11:01 819作为内存数据缓冲 ... -
Redis原理与简述
2016-01-13 10:46 12679Redis是一个开源的key-value存储系统。 ... -
Redis配置文件参数
2016-01-13 09:55 7612.1 Redis配置文件 为了对Redis的系统实现有一个直 ...
相关推荐
1. **SOAP与RESTful支持**:CXF支持两种主流的Web服务标准,即SOAP(简单对象访问协议)和REST(代表性状态转移)。SOAP主要用于复杂、事务性业务逻辑,而REST则适用于轻量级、资源导向的服务。 2. **JAX-WS和JAX-...
第一天: 什么是webservice? 从案例(便民查询网站)分析如何实现? 使用socket实现。 使用jaxws开发webservice。 Webservice三要素 ... CXF发布rest的webservice。(重点) 综合案例: 实现便民查询网站
【CXF小案例:Java WebService详解】 在Java开发中,Apache CXF是一个非常流行的开源框架,用于构建和消费Web服务。本篇文章将深入探讨如何使用CXF来创建一个简单的Java WebService,并介绍相关的知识点。 一、...
在这个"JDK+CXF实现webservice简单案例"中,我们将探讨如何利用Java JDK和Apache CXF框架来创建和消费Web服务。 首先,JDK是Java Development Kit的缩写,它是开发和运行Java应用程序的基础。在这里,JDK提供了基础...
**WebService实现**:在CXF的帮助下,我们可以通过以下步骤实现一个WebService: 1. **定义服务接口**:首先,我们需要定义一个Java接口,包含要暴露给客户端的方法。 2. **创建服务实现**:然后,实现该接口,具体...
在本案例中,我们将探讨如何手写一个简单的WebService,并理解其核心组件和服务的工作原理。 首先,我们要知道WebService的核心协议是SOAP(Simple Object Access Protocol),它定义了消息格式,使得应用程序可以...
这就是一个简单的CXF搭建Web服务案例。通过这个案例,你可以学习到如何使用CXF创建Web服务,包括定义接口、实现服务、配置Servlet以及生成客户端代码。这个过程有助于理解Web服务的工作原理,同时,CXF的易用性和...
【标题】:CXF实现Web服务(WebService)的项目实例详解 在当今的软件开发中,Web服务扮演着重要的角色,它允许不同系统之间通过网络进行数据交换和功能调用。CXF是一个开源的Java框架,它使得开发和集成Web服务变...
通常,一个名为"cxfDemo"的文件可能包含了一个简单的CXF Web服务的实现,可能包括服务接口定义、实现类、配置文件以及Maven的pom.xml文件等组成部分。 在这个项目中,开发者可能会经历以下步骤: 1. **设置Maven...
接着,我们将通过一个简单的示例,展示如何使用CXF生成服务接口、实现服务逻辑、发布服务,并且配置客户端调用这些服务。 首先,让我们创建服务接口。在Java中,我们可以使用JAX-WS注解来定义服务接口,比如`@...
ssh框架整合cxf(webservice),ssh案例(增、删、改、查),发布webservice,客户端调用,该工程自带jar包,mysql连接池,自动建库、建表。 ①直接解压,导入ssh2cxf项目 ②用tomcat启动ssh2cxf项目 ③在浏览器输入...
【标题】:“WebService+CXF+Spring”是一个关于在Java环境中使用Apache CXF框架与Spring框架集成实现Web服务的专题。Apache CXF是一个开源的Web服务框架,它允许开发人员创建和部署SOAP和RESTful Web服务。Spring...
- **CXF实用手册.pdf**:此手册涵盖了CXF的全面知识,从安装配置到实战案例,深入浅出地讲解了如何利用CXF构建和管理WebService,是CXF开发者的重要参考文献。 通过以上内容,你可以全面了解并掌握WebService的基础...
springboot+cxf实现webservice示例 <groupId>org.springframework.boot <artifactId>spring-boot-starter <groupId>org.springframework.boot <artifactId>spring-boot-starter-web <!-- CXF ...
在这个“cxf实用案例代码helloworld”中,我们将深入探讨如何使用CXF来实现一个简单的 HelloWorld 示例,这对于初学者理解CXF的工作原理非常有帮助。 一、CXF简介 Apache CXF是基于Java的Web服务开发框架,它提供...
【标题】:“cxf做的webservice对外...对于学习和理解如何使用CXF开发和发布Web服务,这个项目是一个很好的实践案例。开发者可以通过分析源码、配置文件以及测试代码,了解Web服务的完整生命周期,从而提升自己的技能。