总结:
增加rest服务
方式一:
自动增加rest服务
<listener>
<listener-class>
org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap
</listener-class>
</listener>
方式二:
手动增加rest服务
<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>
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;
}
}
MessageApplication这个中用@ApplicationPath("/api")设置基路径,刚好是前缀还有用吗
示例:
修改了原文部分错误(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>
相关推荐
- **Spring配置RestEasy**:在`web.xml`中,配置Spring的DispatcherServlet和RestEasy的Servlet,以启用Spring和RestEasy的整合。 - **测试类**:如`MyServiceTest.java`,用于验证RestEasy服务是否能正常工作。 **...
在Java EE应用中,我们需要在web.xml中配置RESTEasy的Servlet,例如: ```xml <servlet-name>Resteasy <servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher <servlet-name>...
为了使 RESTEasy 能够识别并处理这些资源,我们需要在应用的初始化阶段配置 RESTEasy。如果你是在一个 Java EE 容器(如 WildFly)中运行,这通常可以通过部署描述符(如 `web.xml`)完成。对于独立应用,我们可以...
在这份手册中,介绍了RESTEasy的安装配置、如何在不同的容器环境下升级RESTEasy、如何在Servlet容器中配置独立的RESTEasy,以及如何使用各种注解和配置来创建和管理RESTful服务。 手册首先概述了RESTEasy的核心概念...
RestEasy与Netty结合使用,可以构建高性能的RESTful服务,摆脱传统的Servlet容器如Tomcat的依赖。RestEasy是JBoss公司开发的一个Java框架,它实现了JSR 311和JSR 339(Java API for RESTful Web Services)标准,...
在 Servlet 3.0 之前,RESTEasy 需要在应用服务器或 servlet 容器中进行额外的配置,比如通过 web.xml 文件注册 RESTEasy 的拦截器和提供者。而 Servlet 3.0 引入了注解驱动的部署,允许开发者直接在类或方法上使用 ...
最后,RESTEasy项目还具有一些亮点,例如出色的性能、扩展性和文档资料的丰富性,这使得它成为开发RESTful Web服务时的热门选择之一。 综合上述知识点,使用RESTEasy框架构建WebService的整个过程,从项目初始化、...
在 Resteasy 中,它可以用于自动配置和管理组件。 2. **javassist-3.8.0.GA.jar**:Javassist 是一个动态类文件操作库,它允许开发者在运行时修改或生成类。在 Resteasy 中,它用于处理类的动态加载和转换,以支持...
在使用RESTEasy时,通常需要依赖一些特定的jar包来支持其功能。以下是标题和描述中提到的几个关键jar包及其在RESTEasy中的作用: 1. **activation.jar**:这是JavaBeans Activation Framework (JAF)的一部分,用于...
4. **扫描和注册**:Resteasy能够自动扫描应用中的资源类和提供者,并将它们注册到服务中,无需手动配置。 5. **模块化架构**:Resteasy设计为模块化,允许开发者根据需求选择特定的功能模块,如安全、缓存或CDI...
3. **配置应用**: 配置应用服务器或者Servlet容器,添加RestEasy的依赖并注册RestEasy的Servlet或Filter。 4. **部署服务**: 将包含资源类的Java应用部署到服务器。 5. **测试服务**: 使用HTTP客户端工具(如curl...
配置Resteasy在这些应用服务器中的运行环境,包括设置模块路径、调整参数等,以适应不同项目的需求。 #### 3.5 Standalone Resteasy 介绍如何独立运行Resteasy,无需依赖于任何应用服务器,这对于测试和小型项目...
该项目为 Spring Boot 应用程序提供 RESTEasy 自动配置。入门构建此项目并将其安装到您的 Maven 存储库中: $ mvn install然后,您应该在应用程序的build.gradle或pom.xml添加对org.springframework.boot:spring-...
RESTEasy 项目是 JAX-RS 的一个实现,集成的一些亮点: * 不需要配置文件,只要把JARs文件放到类路径里面,添加 @Path 注解就可以了。 * 完全的把 RESTEeasy 配置作为Seam 组件来看待。 * HTTP 请求由Seam来提供...
然后,我们需要配置 RESTEasy 容器,这通常在应用服务器或 Servlet 容器中完成。例如,在 JBoss 或 Tomcat 中,我们可以创建一个 `web.xml` 文件来启动 RESTEasy 框架: ```xml ... <param-name>resteasy....
RESTEasy是Java中一个流行的RESTful Web服务...通过适当地配置Servlet容器和RESTEasy组件,开发者可以创建安全的REST服务,并控制不同级别的访问权限。理解并正确实施这些机制对于构建健壮的RESTful应用程序至关重要。
3. **配置RestEasy** - 配置Jetty以识别并处理JAX-RS资源。创建一个`WEB-INF/web.xml`文件,定义Servlet和监听器: ```xml <listener-class>org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap ...
1. **配置RESTEasy JSON支持**: 在你的Java EE项目中,首先需要添加RESTEasy的依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>org.jboss.resteasy <artifactId>resteasy-jax...
案例基于 jboss 7.1.0 和restEasy3.0.18,是目前...因为使用的是jboss7,所以restEasy已经集成在里面了,直接用就行,甚至不用配置web.xml和一些自动扫描的参数,配置的重点是在自定义的applicaiton和自己的service中。
或者,如果使用的是RESTEasy的默认配置,只需要确保没有其他消息处理器与Jackson冲突,RESTEasy会自动选择Jackson作为JSON处理的首选库。 一旦配置完成,我们就可以在REST服务的资源方法中使用Jackson进行JSON转换...