- 浏览: 772895 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (208)
- Java (77)
- JavaScript (16)
- UML (1)
- Spring (24)
- Hibernate (11)
- J2EE部署 (18)
- 操作系统 (13)
- struts (11)
- jsp (3)
- J2EE (34)
- 数据库 (22)
- tomcat (4)
- apache (2)
- MyEclipse (13)
- Linux (14)
- Ext (6)
- Weblogic (2)
- 数据库 Oracle 空表导出 (1)
- Oracle (3)
- 编码 乱码 (1)
- 多线程 (5)
- jQuery (2)
- Apache Mina (1)
- ibatis (6)
- abator (1)
- svn (1)
- jvm (1)
- ERwin (2)
- mysql (2)
- ant (1)
- memcache (1)
- dubbo (1)
- PowerDesigner (1)
最新评论
-
di1984HIT:
Shallow heap & Retained heap -
tinguo002:
非常感谢 , 太棒了。
Spring注解方式,异常 'sessionFactory' or 'hibernateTemplate' is required的解决方法 -
白天看黑夜:
Apache Mina Server 2.0 中文参考手册(带 ...
Apache Mina – 简单的客户端/服务端应用示例 -
wumingxingzhe:
好文
Shallow heap & Retained heap -
di1984HIT:
学习了!!
工作流(Workflow)和BPM的不同
1. 假设我们有个服务 (都是从别处拿来的代码)
服务实现类:
返回数据包装类
普通类
Spring 服务声明
web.xml 就不贴了, 和普通的一样.
2. 访问方法有3种, 可以实现获取不同格式的内容.
http://localhost:8080/student/student/3/info2.json?name=abcss
http://localhost:8080/student/student/3/info2.xml?name=abcss
http://localhost:8080/student/student/3/info2?name=abcss&_type=xml
http://localhost:8080/student/student/3/info2?name=abcss&_type=json
还有一种办法就是在请求时设置Accept:
简单吧.... 呵呵
mport javax.ws.rs.*; import javax.ws.rs.core.Response; @Path(value = "/student/{id}") public interface StudentService { @GET @Path(value = "/info") Student getStudent(@PathParam("id") long id, @QueryParam("name") String name); @GET @Path(value = "/info2") UserResponse getStudent(@QueryParam("name") String name); }
服务实现类:
import javax.ws.rs.core.Response; import java.text.ParseException; import java.text.SimpleDateFormat; public class StudentServiceImpl implements StudentService { public Student getStudent(long id, String name) { Student s = new Student(); s.setId(id); s.setName(name); try { s.setBirthday(new SimpleDateFormat("yyyy-MM-dd").parse("1983-04-26")); } catch (ParseException e) { e.printStackTrace(); } return s; } public Response getStudent1(String name) { Student s = new Student(); s.setId(1); s.setName(name); try { s.setBirthday(new SimpleDateFormat("yyyy-MM-dd").parse("1983-04-26")); } catch (ParseException e) { e.printStackTrace(); } return Response.ok(s).build(); //return s; } public UserResponse getStudent(String name) { Student s = new Student(); s.setId(1); s.setName(name); try { s.setBirthday(new SimpleDateFormat("yyyy-MM-dd").parse("1983-04-26")); } catch (ParseException e) { e.printStackTrace(); } return new UserResponse("ok", s); }
返回数据包装类
import javax.xml.bind.annotation.*; @XmlRootElement(name = "Response") @XmlAccessorType(XmlAccessType.FIELD) public class UserResponse { private String status; private Student data; public UserResponse() { } public UserResponse(String status, Student data) { this.status = status; this.data = data; } public String getStatus() { return status; } public void setStatus(String status) { this.status = status; } public Object getData() { return data; } public void setData(Student data) { this.data = data; } }
普通类
import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlRootElement; import java.util.Date; @XmlRootElement(name = "Student") @XmlAccessorType(XmlAccessType.FIELD) public class Student { private long id; private String name; private Date birthday; public long getId() { return id; } public void setId(long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } }
Spring 服务声明
<import resource="classpath:META-INF/cxf/cxf.xml"/> <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml"/> <import resource="classpath:META-INF/cxf/cxf-servlet.xml"/> <import resource="classpath:META-INF/cxf/cxf-extension-jaxrs-binding.xml"/> <bean id="rsStudentServiceImpl" class="ex3.StudentServiceImpl" /> <jaxrs:server id="test" address="/student" > <jaxrs:serviceBeans> <ref bean="rsStudentServiceImpl" /> </jaxrs:serviceBeans> <!-- 这里设置了对应关系, 按理说默认就应该是这样, 你可以试试. 当然可以自定义 --> <jaxrs:extensionMappings> <entry key="json" value="application/json"/> <entry key="xml" value="application/xml"/> </jaxrs:extensionMappings> </jaxrs:server>
web.xml 就不贴了, 和普通的一样.
2. 访问方法有3种, 可以实现获取不同格式的内容.
http://localhost:8080/student/student/3/info2.json?name=abcss
http://localhost:8080/student/student/3/info2.xml?name=abcss
http://localhost:8080/student/student/3/info2?name=abcss&_type=xml
http://localhost:8080/student/student/3/info2?name=abcss&_type=json
还有一种办法就是在请求时设置Accept:
HttpGet get = new HttpGet( "http://127.0.0.1:8080/student/student/3/info2?name=Fetion"); HttpClient httpclient = new DefaultHttpClient(); get.addHeader("ACCEPT", "application/xml"); HttpResponse response = httpclient.execute(get); StatusLine st = response.getStatusLine(); InputStream ins = response.getEntity().getContent(); byte[] b = new byte[1024]; StringBuilder sb = new StringBuilder(); while (ins.read(b) != -1) { sb.append(new String(b, "UTF-8")); } System.out.println(sb.toString());
简单吧.... 呵呵
评论
4 楼
sophie_laputa
2012-05-30
请问用的是哪一个版本的cxf呢
3 楼
bjyzxxds
2012-05-23
你firebug看看刷新N次以后,获取不到参数时,页面提交的参数什么呢,然后分析原因,应该不会是webservice的问题
2 楼
zjc198805
2012-05-23
联系方式:644952013
1 楼
zjc198805
2012-05-23
LZ,为什么刷新按住N次以后请求就获取不到数据了?
发表评论
-
Eclipse,javaw 通过Proxifile代理ipv6协议问题解决
2015-03-17 18:06 2798myeclipse2010升级到myeclipse2014之后 ... -
初始化EHcache CacheManager时报java.net.UnknownHostException
2014-11-13 11:45 12510工程启动时,报一下异常: [wdfportal] [201 ... -
tomcat7可能带来的问题
2013-06-27 00:31 9841、struts标签校验更加严格,如果struts标签中存在嵌 ... -
iBatis执行insert后返回主键
2013-01-18 23:55 1652iBatis插入数据后,返回主键。级联操作很有用。省去了一次的 ... -
Shallow heap & Retained heap
2012-05-16 17:09 49326所有包含Heap Profling功能的工具(MAT, You ... -
什么是两阶段提交协议
2012-05-08 16:58 1067两阶段提交协议 实现分布式事务的关键就是两阶段提交协议。在此 ... -
Abator —— IBatis 代码生成工具
2012-04-03 18:31 19351、在eclipse安装abator插件http://ibat ... -
使用Eclipse远程调试Tomcat
2012-03-23 22:56 1512有些时候,调试不得不用外网,比如说做支付宝的支付接口,服务器后 ... -
Java compiler level does not match the version of the installed Java project fac
2012-03-02 11:32 1321问题现象:项目图标报错“Java compiler level ... -
WebService的事务处理
2012-03-01 15:03 1562如果你只是要解决两个系统之间的事务同步问题,可以采用判断服务是 ... -
线程池(java.util.concurrent.ThreadPoolExecutor)的使用
2012-02-29 15:50 2509一、简介 线程池类为 j ... -
myeclipse 颜色设置(保护视力)
2012-02-28 09:29 20911.window -> Preferences -> ... -
Quartz表达式解析
2012-02-08 14:40 809字段 允许值 允许的特 ... -
使用iBatis中报 java.sql.SQLException: 无效的列类型异常
2011-12-15 14:46 2244<!--Content表 插入应的 ... -
非常有用的proxool属性详细解说
2011-12-13 16:19 1612Proxool连接池是sourceforge下的一个开源项目, ... -
在工程中查找自己修改的所有代码
2011-12-09 17:41 1049在工程中查找自己修改的所有代码的方法: 1.工程右键 -&g ... -
如何在Eclipse中安装和使用ibatis插件Abator
2011-12-01 21:26 49761、获得abator: http://ibatis. ... -
newCachedThreadPool线程池
2011-11-20 11:35 43036public static ExecutorService n ... -
Apache Mina – 简单的客户端/服务端应用示例
2011-11-19 23:49 5530转自http://javasight.net/2011/05/ ... -
Class.forName()、Class.forName().newInstance() 、New 三者区别!
2011-11-15 09:18 1263终于明白为什么加载数据库驱动只用Class.forName() ...
相关推荐
Spring Security可以与Spring CXF很好地集成,提供基于角色的访问控制和OAuth2支持。 8. **监控和日志**:为了监控服务性能和错误,我们可以配置Spring CXF的日志和跟踪功能,同时可以使用Spring Boot Actuator等...
CXF框架支持RESTful服务的实现,让我们来详细探讨如何使用CXF构建一个简单的RESTful服务。\n\n一、CXF简介\nApache CXF是一个强大的Java框架,提供了一种灵活的方式来构建和部署Web服务。它支持多种Web服务规范,...
在本案例中,我们将深入探讨如何在不依赖Spring框架的情况下,仅使用CXF实现一个简单的RESTful服务,该服务能返回JSON格式的数据。 1. **CXF与RESTful服务**: RESTful是一种架构风格,强调资源的识别和通过HTTP...
在本文中,我们将深入探讨如何将Apache CXF与Spring框架集成,以便同时支持JSON和XML的Web服务。Apache CXF是一个流行的开源框架,用于构建和消费Web服务,而Spring是Java开发中的一个全面的框架,提供了强大的依赖...
在这个“CXF整合spring 支持restful xml json 上传下载的HelloWorld”示例中,我们将探讨如何实现XML和JSON数据格式的支持,以及文件上传和下载功能。 首先,我们需要在Spring配置文件中声明CXF的Servlet,这样可以...
CXF作为Java框架,提供了强大的支持来实现RESTful服务。 接下来,我们进入CXF与Maven的集成过程。Maven是Java项目管理工具,它帮助开发者管理项目的构建、依赖和生命周期。在创建CXF RESTful服务时,我们首先需要在...
同时,CXF提供了很多工具和插件,如CXF的WS-Security、WS-I兼容性测试等,这些工具可以辅助开发和调试REST服务。 在【压缩包子文件的文件名称列表】中,`src`通常是源代码目录,包含了项目的所有Java源文件、资源...
XML(Extensible Markup Language)和JSON(JavaScript Object Notation)是两种常见的数据交换格式,广泛应用于Web服务和数据传输。XML以其丰富的结构化特性而闻名,而JSON则以简洁和易于解析的优势受到青睐。在...
Apache CXF是一个开源的SOAP和RESTful Web服务框架,支持多种协议和绑定机制。CXF允许开发者选择使用Java API for RESTful Web Services (JAX-RS)标准或者CXF自身的API来开发REST服务。JAX-RS是Java平台上的RESTful...
综上所述,CXF框架提供了全面的工具和功能,使得开发和支持XML和JSON数据格式的Web服务变得简单。无论是服务端的开发,还是客户端的调用,CXF都能提供强大的支持。在实际项目中,理解并熟练运用CXF处理XML和JSON的...
<bean class="org.apache.cxf.jaxrs.provider.json.JSONProvider"/> <bean id="helloWorldService" class="com.example.HelloWorldService"/> ``` 4. **启动服务**:在主程序中,加载Spring配置并启动...
<import resource="classpath:META-INF/cxf/cxf.xml"/> <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml"/> <import resource="classpath:META-INF/cxf/cxf-servlet.xml"/>
CXF作为一个开源的Web服务框架,它支持SOAP和REST两种服务模型,尤其在处理REST服务时表现出强大的功能。本文将详细探讨如何使用CXF 2.6版本与Spring框架结合,来提供REST服务并输出XML或JSON格式的数据。 首先,...
- **JSON和XML支持**:CXF内置了对JSON和XML的支持,可以通过`@Consumes`和`@Produces`注解指定输入和输出格式。 - **安全机制**:可以集成OAuth、JWT等安全框架,实现RESTful服务的安全访问。 总的来说,Apache ...
- **RESTful**:REST(Representational State Transfer,表述性状态转移)是一种网络应用程序的设计风格和开发方式,主要基于HTTP协议,使用URI(Uniform Resource Identifier)作为资源定位,以JSON或XML格式交换...
它不仅支持SOAP协议,还支持RESTful风格的API。而Spring框架则是一个全面的企业级应用开发框架,两者结合可以创建强大的、灵活的Java应用程序。本教程将深入探讨如何在Spring环境中集成CXF以实现RESTful WebService...
- 使用JAXB进行数据绑定:CXF支持JAXB(Java Architecture for XML Binding),可以通过注解将Java对象自动转换为JSON或XML格式,方便RESTful接口的数据交换。 - 定义资源路径:使用`@Path`注解定义资源路径,如`@...
- **数据绑定**:CXF支持JAXB(Java Architecture for XML Binding)进行XML与Java对象之间的转换。 - **拦截器**:你可以自定义拦截器来扩展服务功能,比如日志记录、性能监控等。 - **传输协议**:CXF不仅支持SOAP...
webserviceApache CXF java springboot利用Apache CXF创建webserice接口 Apache CXF 核心架构是以BUS为核心,整合其他组件。 * Bus是CXF的主干, 为共享资源提供一个可配置的场所,作用类似于Spring的...
CXF还提供了内置的`org.apache.cxf.jaxrs.provider.json.JSONProvider`,可以直接处理JSON数据。只需在服务端或者客户端的配置中注册这个提供者,就可以自动处理JSON序列化和反序列化。 5. RESTful服务与JSON 在...