- 浏览: 351691 次
- 性别:
- 来自: 成都正在项目
文章分类
- 全部博客 (121)
- Java-Spring (1)
- Java-Hibernate (5)
- Java-基础 (16)
- Java-中级 (1)
- Java-高级 (18)
- Java-Struts (0)
- Java-RCP/Swing/SWT/JFACE (1)
- Java-常用正则 (1)
- Java-反射 (2)
- Java-h2database (2)
- JAVA面试题目 (1)
- ArcGIS Desktop 10——安装篇 (2)
- ArcGIS Desktop 10——基本知识 (0)
- ArcGIS Desktop 10——专业库——数据管理 (9)
- PHP——安装篇 (3)
- PHP——基础篇 (2)
- PHP——教程笔记 (10)
- GIS——基础 (3)
- GIS——算法 (0)
- GIS——Geoserver (1)
- GIS——OpenLayers (1)
- C#——既然改成了ITEYE我就增加个栏目 (1)
- Oracle——PL/SQL (1)
- Oracle——Java基础 (2)
- Oracle——TOAD (1)
- ECLIPSE-MYECLIPSE常见问题 (3)
- MySQL——安装篇 (4)
- Postgres (5)
- JavaScript - JQUERY (2)
- C++ (2)
- 操作系统 (5)
- Dwr——DirectWebRemoting (5)
- Maven (1)
- FLEX (4)
- ruby (1)
最新评论
-
AXthrough:
好强大,支持。
解决Jquery.autocomplete.js多参数的正确传递+中文编码+发送兼容FF+空格问题+返回值 -
redsky008:
独立的程序,独立的路径。
我已经转行了,以后这个很少关注的了 ...
真正解决 log4j:ERROR Failed to rename错误解决办法 -
梅花簪:
没明白,怎么改配置,为不同的进程所有?
真正解决 log4j:ERROR Failed to rename错误解决办法
转载自http://zorro.blog.51cto.com/2139862/874953
修改了原文部分错误(web.xml文件中和第二种方法)
RestEasy, Jboss项目的JAX-RS参考实现。
1. 技术和工具:
RESTEasy 2.2.1.GA
JDK 1.6
Maven 3.0.3
Eclipse 3.6
2. 目录结构
3. 标准的Web项目
创建一个标准的Maven web 项目结构(可以通过eclipse中选择一个web模版项目来创建)
mvn archetype:create -DgroupId=com.mkyong.common -DartifactId=RESTfulExample
-DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
转换为Eclipse web工程:
mvn eclipse:eclipse -Dwtpversion=3.2.5
4. 项目依赖
在pom.xml中声明Jboss 依赖为仓库为 resteasy-jaxrs(如果有私有仓库如nexus,当然这个可以不用)
<project ...">
<!-- 有私有仓库这个就不用写啦 -->
<repositories>
<repository>
<id>JBoss repository</id>
<url>https://repository.jboss.org/nexus/content/groups/public-jboss/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
<version>2.2.1.GA</version>
</dependency>
</dependencies>
</project>
5. 写个REST服务类
package com.mkyong.rest;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.core.Response;
@Path("/message")
public class MessageRestService {
public MessageRestService(){}
@GET
@Path("/{param}")
public Response printMessage(@PathParam("param") String msg) {
String result = "Restful example : " + msg;
return Response.status(200).entity(result).build();
}
}
6. web.xml
现在配置监听器和servlet以支持RESTEasy,(详细参考JBOSS documentation)
<web-app id="WebApp_ID" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>Restful Web Application</display-name>
<!-- Auto scan REST service -->
<context-param>
<param-name>resteasy.scan</param-name>
<param-value>true</param-value>
</context-param>
<!-- 这句是关键 -->
<context-param>
<param-name>resteasy.resources</param-name>
<param-value>com.mkyong.rest.MessageRestService</param-value>
</context-param>
<!-- this need same with resteasy servlet url-pattern -->
<context-param>
<param-name>resteasy.servlet.mapping.prefix</param-name>
<param-value>/rest</param-value>
</context-param>
<listener>
<listener-class>
org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap
</listener-class>
</listener>
<servlet>
<servlet-name>resteasy-servlet</servlet-name>
<servlet-class>
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>resteasy-servlet</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>
注:在上面的例子中, resteasy servlet url-pattern是"/rest/*",因此必须设置“resteasy.servlet.mapping.prefix”为“/rest”。
注意设置“resteasy.scan”为true,以便RESTEasy扫描和自动注册你的REST服务。
7. 浏览器地址访问目录结构为:“工程URL/rest/message/”匹配“MessageRestService”,并且“工程URL/rest/message/{任意值}”匹配@PathParam参数
如:http://localhost:8080/RESTfulExample/rest/message/aaa,
结果为:Restful example : aaa
8. 上面的例子是通过"ResteasyBootstrap"监听的。下面是另外一种方式。
创建一个类并且继承javax.ws.rs.core.Application,并且手动增加REST服务。
package com.mkyong.app;
import java.util.HashSet;
import java.util.Set;
import javax.ws.rs.core.Application;
import com.mkyong.rest.MessageRestService;
public class MessageApplication extends Application {
private Set<Object> singletons = new HashSet<Object>();
public MessageApplication() {
singletons.add(new MessageRestService());
}
@Override
public Set<Object> getSingletons() {
return singletons;
}
}
web.xml中不再监听,修改web.xml
<web-app id="WebApp_ID" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>Restful Web Application</display-name>
<!-- 这句是关键 -->
<context-param>
<param-name>resteasy.resources</param-name>
<param-value>com.mkyong.rest.MessageRestService</param-value>
</context-param>
<!-- this need same with resteasy servlet url-pattern -->
<context-param>
<param-name>resteasy.servlet.mapping.prefix</param-name>
<param-value>/rest</param-value>
</context-param>
<servlet>
<servlet-name>resteasy-servlet</servlet-name>
<servlet-class>
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.mkyong.app.MessageApplication</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>resteasy-servlet</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>
修改了原文部分错误(web.xml文件中和第二种方法)
RestEasy, Jboss项目的JAX-RS参考实现。
1. 技术和工具:
RESTEasy 2.2.1.GA
JDK 1.6
Maven 3.0.3
Eclipse 3.6
2. 目录结构
3. 标准的Web项目
创建一个标准的Maven web 项目结构(可以通过eclipse中选择一个web模版项目来创建)
mvn archetype:create -DgroupId=com.mkyong.common -DartifactId=RESTfulExample
-DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
转换为Eclipse web工程:
mvn eclipse:eclipse -Dwtpversion=3.2.5
4. 项目依赖
在pom.xml中声明Jboss 依赖为仓库为 resteasy-jaxrs(如果有私有仓库如nexus,当然这个可以不用)
<project ...">
<!-- 有私有仓库这个就不用写啦 -->
<repositories>
<repository>
<id>JBoss repository</id>
<url>https://repository.jboss.org/nexus/content/groups/public-jboss/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
<version>2.2.1.GA</version>
</dependency>
</dependencies>
</project>
5. 写个REST服务类
package com.mkyong.rest;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.core.Response;
@Path("/message")
public class MessageRestService {
public MessageRestService(){}
@GET
@Path("/{param}")
public Response printMessage(@PathParam("param") String msg) {
String result = "Restful example : " + msg;
return Response.status(200).entity(result).build();
}
}
6. web.xml
现在配置监听器和servlet以支持RESTEasy,(详细参考JBOSS documentation)
<web-app id="WebApp_ID" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>Restful Web Application</display-name>
<!-- Auto scan REST service -->
<context-param>
<param-name>resteasy.scan</param-name>
<param-value>true</param-value>
</context-param>
<!-- 这句是关键 -->
<context-param>
<param-name>resteasy.resources</param-name>
<param-value>com.mkyong.rest.MessageRestService</param-value>
</context-param>
<!-- this need same with resteasy servlet url-pattern -->
<context-param>
<param-name>resteasy.servlet.mapping.prefix</param-name>
<param-value>/rest</param-value>
</context-param>
<listener>
<listener-class>
org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap
</listener-class>
</listener>
<servlet>
<servlet-name>resteasy-servlet</servlet-name>
<servlet-class>
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>resteasy-servlet</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>
注:在上面的例子中, resteasy servlet url-pattern是"/rest/*",因此必须设置“resteasy.servlet.mapping.prefix”为“/rest”。
注意设置“resteasy.scan”为true,以便RESTEasy扫描和自动注册你的REST服务。
7. 浏览器地址访问目录结构为:“工程URL/rest/message/”匹配“MessageRestService”,并且“工程URL/rest/message/{任意值}”匹配@PathParam参数
如:http://localhost:8080/RESTfulExample/rest/message/aaa,
结果为:Restful example : aaa
8. 上面的例子是通过"ResteasyBootstrap"监听的。下面是另外一种方式。
创建一个类并且继承javax.ws.rs.core.Application,并且手动增加REST服务。
package com.mkyong.app;
import java.util.HashSet;
import java.util.Set;
import javax.ws.rs.core.Application;
import com.mkyong.rest.MessageRestService;
public class MessageApplication extends Application {
private Set<Object> singletons = new HashSet<Object>();
public MessageApplication() {
singletons.add(new MessageRestService());
}
@Override
public Set<Object> getSingletons() {
return singletons;
}
}
web.xml中不再监听,修改web.xml
<web-app id="WebApp_ID" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>Restful Web Application</display-name>
<!-- 这句是关键 -->
<context-param>
<param-name>resteasy.resources</param-name>
<param-value>com.mkyong.rest.MessageRestService</param-value>
</context-param>
<!-- this need same with resteasy servlet url-pattern -->
<context-param>
<param-name>resteasy.servlet.mapping.prefix</param-name>
<param-value>/rest</param-value>
</context-param>
<servlet>
<servlet-name>resteasy-servlet</servlet-name>
<servlet-class>
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.mkyong.app.MessageApplication</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>resteasy-servlet</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>
发表评论
-
原来Junit不支持多线程测试,需要使用GroboUtils才可以支持多线程测试
2011-12-06 09:30 1950对Junit的不深刻理解,造成多线程执行不完整,比如执行100 ... -
java.lang.LinkageError: JAXB 2.0 API is being loaded from the bootstrap classloa
2011-07-29 10:07 1272在做RESTful测试时,在Windows系统下出现了如下问题 ... -
转:Mina2 Http server
2011-07-27 14:03 1047http://amozon.iteye.com/blog/32 ... -
Base64测试
2011-06-29 17:36 1package com.redsky.cn.test; ... -
转Java集群好网站
2011-06-28 22:11 717http://www.jdon.com/jivejdon/th ... -
转:常见NIO开源框架(MINA、xSocket)学习 2
2011-06-23 18:17 840http://unbounder.iteye.com/blog ... -
test
2011-06-23 16:50 543http://www.liuyangs.info/docume ... -
转:直接用socket的话,mina server就不能用filter
2011-06-23 16:00 1转:http://www.blogjava.net/cresp ... -
转:模拟Mina2的TextLineCodecFactory中的TextLineDecoder解码器
2011-06-21 21:50 2001转自:http://hi.baidu.com/huahua03 ... -
转Java NIO文件操作
2011-06-21 13:54 907http://download.csdn.net/source ... -
搜集的一篇OutOfMemoryError
2011-06-10 23:29 1967最近遇到如下问题,主要是在做线程池+数据库连接池时遇到的,虽然 ... -
另一个线程池ThreadPool,感觉比之前发的那个JDK自带的好用
2011-06-10 22:52 2247import java.util.LinkedList; p ... -
转载Socket解包
2011-05-31 20:04 1836http://liuyuyuan.iteye.com/blog ... -
Java解决常见验证码——一定是准确率100%
2011-05-28 21:30 1146绝对不适合于严重扭曲,形状交叉的情形。有别于传统切图(一般4张 ... -
Mina2和Spring(2.5)在web项目中的结合使用
2011-05-18 20:55 783转载http://yanda20056.blog.163.co ... -
学习动态代理的时候,原来JAVA代码中也可以编译代码执行JAVAC的功能啊
2011-05-04 22:37 1026JDK1.6提供了如题的功能,前提是项目必须引入JDK1.6而 ... -
关于Map接口中Key值是对象还是值的问题
2011-04-28 19:24 3652今天遇到取不出Key所对应的值,取值为null. 原来是Key ... -
深度克隆对象
2011-04-28 15:10 1024必须将对象序列和反序列, 而且尤其在多线程中要引用多个对象,而 ... -
转载:JDK1.5中的线程池(java.util.concurrent.ThreadPoolExecutor)使用简介
2011-04-28 15:04 811将封装的如下方法置顶 public static Thr ...
相关推荐
【RESTEasy HelloWorld 示例详解】 RESTEasy 是一个开源的 Java 框架,它实现了 JAX-RS(Java API for RESTful Web Services)规范,使得开发者能够轻松地在 Java 应用程序中创建 RESTful 服务。JAX-RS 是一种用于...
Test http://localhost:8082/resteasy/hello/world 教程 jax-rs规范用法: http://www.vogella.com/tutorials/REST/article.html resteasy 教程: http://code.freedomho.com/9541.html 名次解释 RESTEasy:RESTEasy...
resteasy
1. 快速构建HelloWorld示例,这是初学者学习RESTEasy的起点。 2. 使用不同方式发布RESTful Web服务,例如使用servletFilter注册服务类。 3. 实现非表单提交的文件上传功能。 4. 将RESTEasy与Spring集成,以提高服务...
return "Hello, World!"; } } ``` 在这个例子中,`HelloResource`类将被自动注册为`/hello`路径的REST服务,提供GET请求的处理。 2. **编程式注册**:在某些情况下,你可能需要在运行时动态注册或注销REST服务。...
在`resteasy-spring-test`中,`MyService`接口定义了REST方法,`MyServiceImpl`实现了这些方法,并可能使用了Spring的依赖注入。`web.xml`配置了`SpringServlet`和`ResteasyServlet`,确保两者协同工作。`...
在这个例子中,`@Path("/hello")` 注解定义了资源路径,而 `@GET` 和 `@Produces(MediaType.TEXT_PLAIN)` 分别表示这是一个处理 GET 请求的方法,返回类型为纯文本。 然后,我们需要配置 RESTEasy 容器,这通常在...
jaxrs-招摇带有 RestEasy 的 Swagger 2.0 Hello World 示例。 它使用 swagger-core 1.5.0-M2 版本。 由于 1.5.0 尚未发布,因此您需要自行构建 swagger 核心并将其安装在本地 Maven 存储库中。构建 swagger-core git...
return "Hello, World!"; } @POST @Consumes("application/json") public String greetUser(User user) { return "Hello, " + user.getName(); } } ``` 在上述代码中,`@Path` 注解定义了资源路径,`@GET` ...
在本文中,我们将深入探讨如何使用RESTEasy和Guice框架实现文件的上传与下载功能。RESTEasy是一个基于Java的RESTful Web服务实现,它与Java EE应用服务器集成,而Guice是Google提供的一款轻量级依赖注入框架,帮助...
标题 "resteasy-jaxrs-2.2 学习整理的例子" 暗示了我们即将探讨的是关于RESTful服务开发的一个案例,其中涉及到的主要技术是RESTEasy和JAX-RS 2.2。RESTEasy是Java EE平台上的一个开源框架,它实现了Java API for ...
RESTEasy作为JAX-RS(Java API for RESTful Web Services)的实现,提供了一种简便的方法来创建RESTful服务。 2. **RestEasy框架**:RestEasy是JBoss的一个子项目,它允许开发者轻松地创建RESTful服务,并且与Java ...
在这个例子中,`@Path("/hello")`表示资源的URI路径,`@GET`表示这是GET请求处理方法。 **4. 配置RestEasy** 在`web.xml`文件中配置RestEasy,告诉它在哪里查找我们的REST资源: ```xml ... <servlet-name>...
总结来说,RestEasy与Netty的结合使用是一种高效且灵活的实现REST服务的方法。通过Netty的高性能网络通信能力,我们可以构建一个不依赖于Servlet容器的REST服务器,同时享受RestEasy带来的便捷REST开发体验。在实际...
5. **commons-httpclient-3.1.jar**:Apache Commons HttpClient 是一个 HTTP 客户端库,提供了一种方法来执行 HTTP 请求并处理响应。在 Resteasy 中,它可能被用来处理底层的 HTTP 通信。 6. **servlet-api-2.5....
NULL 博文链接:https://aa00aa00.iteye.com/blog/1039012
**RESTEasy 概述** RESTEasy 是一个 Java 框架,它实现了 JAX-RS(Java API for RESTful Web Services)规范,使得开发者能够轻松地构建基于 REST 的 Web 服务。RESTEasy 集成了多种 Java EE 容器,如 Tomcat、...
RESTful架构风格是Web服务设计的一种流行方式,强调资源的识别和通过HTTP方法进行操作。RestEasy允许开发者轻松地将Java对象映射到HTTP请求和响应,简化了开发过程。 ### JAX-RS规范 JAX-RS是Java标准API,用于...
Resteasy是Java应用程序开发中的一个关键组件,它是一个开源的JAX-RS(Java API for RESTful Web Services)实现。JAX-RS是Java标准,用于构建RESTful Web服务,而Resteasy则提供了丰富的功能来支持这一标准。在这个...