RESTFUL接口开发
2015-01-25 15:24
99 查看
1、需要导入的包
<!-- CXF START -->
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxrs</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http-jetty</artifactId>
<version>${cxf.version}</version>
<exclusions>
<exclusion>
<artifactId>geronimo-servlet_2.5_spec</artifactId>
<groupId>org.apache.geronimo.specs</groupId>
</exclusion>
</exclusions>
</dependency>
<!-- CXF END -->
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>org.codehaus.jettison</groupId>
<artifactId>com.springsource.org.codehaus.jettison</artifactId>
<version>1.0.1</version>
</dependency>
2、编写接口和实现类
3、修改spring配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:jaxrs="http://cxf.apache.org/jaxrs"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd">
上面粗体的为需要添加的内容
<!--导入cxf需要配置文件-->
<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" />
<!--发布接口-->
<bean id="Rest_HelloWorldImpl" class="com.demo.inter.rest.Rest_HelloWorldImpl" />
<!-- 这里的地址很重要,客户端需要通过这个地址来访问WebService -->
<jaxrs:server id="restServiceContainer" address="/rest">
<jaxrs:serviceBeans>
<ref bean="Rest_HelloWorldImpl" />
</jaxrs:serviceBeans>
<jaxrs:extensionMappings>
<entry key="json" value="application/json" />
<entry key="xml" value="application/xml" />
</jaxrs:extensionMappings>
<jaxrs:languageMappings>
<entry key="en" value="utf-8" />
</jaxrs:languageMappings>
</jaxrs:server>
4、测试
http://localhost:8080/MyTools/webservice/rest/say/111
<!-- CXF START -->
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxrs</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http-jetty</artifactId>
<version>${cxf.version}</version>
<exclusions>
<exclusion>
<artifactId>geronimo-servlet_2.5_spec</artifactId>
<groupId>org.apache.geronimo.specs</groupId>
</exclusion>
</exclusions>
</dependency>
<!-- CXF END -->
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>org.codehaus.jettison</groupId>
<artifactId>com.springsource.org.codehaus.jettison</artifactId>
<version>1.0.1</version>
</dependency>
2、编写接口和实现类
package com.demo.inter.rest; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement(name = "User") public class User { private String id; private String name; public User() { super(); } public User(String id, String name) { this.id = id; this.name = name; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
package com.demo.inter.rest; import java.util.List; import javax.ws.rs.*; import javax.ws.rs.core.MediaType; public interface IRest_HelloWorld { @GET @Produces(MediaType.TEXT_PLAIN) @Path("/say/{name}") public String say(@PathParam("name") String name); @GET @Produces(MediaType.TEXT_PLAIN) @Path("/sayHello/{name}") public String sayHello(@PathParam("user") User user); @GET @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) @Path("/getList/{id}") public List<User> getList(@PathParam("id") String id); }
package com.demo.inter.rest; import java.util.ArrayList; import java.util.List; import org.springframework.stereotype.Service; @Service("rest_HelloWorldImpl") public class Rest_HelloWorldImpl implements IRest_HelloWorld { public String say(String name) { return name+",您好!"; } public String sayHello(User user) { return user.getName()+",您好!"; } public List<User> getList(String id){ List<User> list = new ArrayList<User>(); String sid="1L"; User user = new User(sid,"张三"+sid); list.add(user); sid="2L"; user = new User(sid,"张三"+sid); list.add(user); sid= "3L"; user = new User(sid,"张三"+sid); list.add(user); return list; } }
3、修改spring配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:jaxrs="http://cxf.apache.org/jaxrs"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd">
上面粗体的为需要添加的内容
<!--导入cxf需要配置文件-->
<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" />
<!--发布接口-->
<bean id="Rest_HelloWorldImpl" class="com.demo.inter.rest.Rest_HelloWorldImpl" />
<!-- 这里的地址很重要,客户端需要通过这个地址来访问WebService -->
<jaxrs:server id="restServiceContainer" address="/rest">
<jaxrs:serviceBeans>
<ref bean="Rest_HelloWorldImpl" />
</jaxrs:serviceBeans>
<jaxrs:extensionMappings>
<entry key="json" value="application/json" />
<entry key="xml" value="application/xml" />
</jaxrs:extensionMappings>
<jaxrs:languageMappings>
<entry key="en" value="utf-8" />
</jaxrs:languageMappings>
</jaxrs:server>
4、测试
http://localhost:8080/MyTools/webservice/rest/say/111
相关文章推荐
- 高性能tornado框架简单实现restful接口及运维开发实例
- 高性能web服务器框架Tornado简单实现restful接口及开发实例
- Restful风格API接口开发springMVC篇
- Restful风格API接口开发springMVC篇
- 关于RESTful一些注意事项,和自己整理的接口开发规范
- 高性能tornado框架简单实现restful接口及运维开发实例 推荐
- RESTful设计原则和样例(开发前后台接口)
- Spring MVC风格的restful接口开发
- API接口开发 配置、实现、测试 Yii2 基于RESTful架构的 advanced版API接口开发 配置、实现、测试
- Restful风格API接口开发springMVC篇
- RESTful设计原则和样例(开发前后台接口)
- 【接口开发】浅谈 SOAP Webserver 与 Restful Webserver 区别
- Yii2 advanced版API接口开发 基于RESTful架构的 配置、实现、测试
- 用scala,slick做数据交互层,play做mvc开发restful接口
- Restful风格API接口开发springMVC篇
- RESTful设计原则和样例(开发前后台接口)
- Yii2 基于RESTful架构的 advanced版API接口开发 配置、实现、测试
- Restful风格API接口开发springMVC篇
- spring开发restful接口,put方法错误