「Java」Tomcat で RESTEasy を使ってみる

Tomcat で RESTEasy を使ってみました。その時のメモです。

[ 環境情報 ]
Windows 7 SP1
Java SE 6 Update 34
Apache Tomcat 7.0.27
RESTEasy 3.0.6.Final

※ RESTEasy ダウンロードしてくると色々 jar が入ってるのですが、ひとまず、今回のサンプルコードであれば、以下の jar を WEB-INF/lib に配置しておけば動くはずです。

resteasy-jaxrs-3.0.6.Final.jar
scannotation-1.0.3.jar
jaxrs-api-3.0.6.Final.jar
javassist-3.8.0.GA.jar


やることとしては、次の 2 点だけです。
1. web.xml に必要な設定を追記する
2. リクエストのパスに応じて処理をするクラスの作成


1. web.xml に必要な設定を追記する

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
   <context-param>
     <param-name>resteasy.scan</param-name>
     <param-value>true</param-value>
   </context-param>
   
   <servlet>
      <servlet-name>Resteasy</servlet-name>
      <servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>
   </servlet>

   <servlet-mapping>
      <servlet-name>Resteasy</servlet-name>
      <url-pattern>/*</url-pattern>
   </servlet-mapping>
</web-app>


2. リクエストのパスに応じて処理をするクラスの作成

import javax.ws.rs.GET;
import javax.ws.rs.Path;

@Path("/hoge")
public class RestEasyTest {
	@GET
	@Path("/uga")
	public String ugaMethod() {
		return "uga !!";
	}
}

上記完了した後に、「http://localhost:8080/<コンテキストパス>/hoge/uga」にアクセスすると「uga !!」とブラウザに表示されるはずです。


ドキュメント的には以下あたりですね。

・RESTEasy JAX-RS
http://docs.jboss.org/resteasy/docs/3.0.6.Final/userguide/html_single/index.html


以上です。