RESTEasy你好世界示例

RESTEasy ,JBoss项目, JAX-RS规范的实现。 在本教程中,我们向您展示如何使用RESTEasy框架创建简单的REST风格的Web应用程序。

本文中使用的技术和工具:

  1. 可重构2.2.1.GA
  2. JDK 1.6
  3. Maven的3.0.3
  4. Eclipse 3.6

什么是REST?
阅读这个这个这个 ,了解什么是REST。

1.目录结构

查看本教程的最终目录结构。 只是一个标准的Web项目结构。

directory structure

2.标准Web项目

创建一个标准的Maven Web项目结构。

mvn archetype:generate -DgroupId=com.mkyong.common -DartifactId=RESTfulExample 
	-DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false

转换为Eclipse Web项目。

mvn eclipse:eclipse -Dwtpversion=2.0

3.项目依赖

在您的Maven pom.xml文件中声明JBoss公共Maven存储库和“ resteasy-jaxrs ”。 这就是您使用RESTEasy所需的全部。

档案:pom.xml

<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>

4. REST服务

一个简单的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 {

	@GET
	@Path("/{param}")
	public Response printMessage(@PathParam("param") String msg) {

		String result = "Restful example : " + msg;

		return Response.status(200).entity(result).build();

	}

}

5. web.xml

现在,配置侦听器和servlet以支持RESTEasy。 阅读此JBoss文档以获取详细说明。

档案: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>

	<!-- Auto scan REST service -->
	<context-param>
		<param-name>resteasy.scan</param-name>
		<param-value>true</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的servlet映射具有除/ *之外的url模式,则需要设置“ resteasy.servlet.mapping.prefix ”。

在上面的示例中,resteasy servlet的url-pattern是“ / rest / * ”,因此您也必须将“ resteasy.servlet.mapping.prefix”设置为“ / rest ”,否则,您将遇到资源找不到错误信息。

注意
请记住,将“ resteasy.scan ”设置为true,以便RESTEasy将自动查找并注册您的REST服务。

6.演示

在此示例中,来自“ projectURL / rest / message / ”的Web请求将与“ MessageRestService ”匹配,而“ projectURL / rest / message / {any values} ”将与@PathParam参数匹配。

测试1:http:// localhost:8080 / RESTfulExample / rest / message / mkyong

example 1

测试2:http:// localhost:8080 / RESTfulExample / rest / message / hello%20world

example 2

备用REST服务注册

在上面的示例中,您通过“ ResteasyBootstrap ”侦听器注册REST服务。 在这里,我向您展示了另一种方式。

创建一个类并扩展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;
	}
}

File: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.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>

做完了

下载源代码

下载它– RESTEasy-Hello-World-Example.zip (7 KB)

参考文献

  1. RESTEasy框架
  2. RESTEasy安装和配置
  3. IBM:RESTful Web服务:基础
  4. RESTful Web服务
  5. Wiki:代表性状态转移

翻译自: https://mkyong.com/webservices/jax-rs/resteasy-hello-world-example/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值