インストール
まずは環境設定です。JDK8, Eclipse4.3, App Serverがインストール済みで、
JAX-RSコンテナ、Context Root (WEB-INF)が用意されているところから始めます。
※App Server = Tomcat, Jetty, GlassFish(J2EE6), JBoss etc ...
MarkupRulerはJAX-RSコンテナ以外のコンテナと組み合わせられると思いますが、
本チュートリアルでは、JAX-RSコンテナを前提として進めていきます。
なおチュートリアルでは、サーバーにTomcatを使い、Eclipse Plugin for Tomcatを利用します。
Tomcatのバージョンは7.0以降が必要です。(Servlet3.0対応のため)
なおJAX-RSコンテナにはApache Winkを使用します。
※JAX-RSコンテナには、他にもApache CXF, Jersey(GlassFish), RESTEasy(JBoss)などがあります。
サーブレットの基本的な使い方に関しては、ここではあまり触れませんので、あらかじめ調べておいてください。
クラスパス
Markup Ruler付属のライブラリ(markup-ruler.jar etc...)と、JAX-RSコンテナの実装ライブラリを
[WEB-INF/lib]フォルダ、もしくは[TOMCAT_HOME/lib]に入れてください。
Eclipse Plugin for Tomcatを使用している場合、プラグイン使い方に従うことに注意してください。
※[WEB-INF/lib] , [WEB-INF/classes] についてはサーブレット参照。
設定ファイル
サーブレット設定ファイル[WEB-INF/web.xml]を設定します。
サーブレットのバージョンが3.0以降ですが、web.xmlで設定してください。
MarkupRulerのフィルターとJAX-RSのサーブレットを登録します。
[1] web.xml
<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0"
metadata-complete="true">
<display-name>Welcome to Tomcat</display-name>
<description>
Welcome to Tomcat
</description>
<servlet>
<servlet-name>JAX-RS(Apache Wink)</servlet-name>
<servlet-class>org.apache.wink.server.internal.servlet.RestServlet</servlet-class>
<load-on-startup>1</load-on-startup>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>test.HelloApplication</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>
JAX-RS(Apache Wink)
</servlet-name>
<url-pattern>
/*
</url-pattern>
</servlet-mapping>
<filter>
<filter-name>
Filter(Markup Ruler)
</filter-name>
<filter-class>
org.ruler.markup.api.Engine
</filter-class>
</filter>
<filter-mapping>
<filter-name>
Filter(Markup Ruler)
</filter-name>
<url-pattern>
/*
</url-pattern>
</filter-mapping>
</web-app>
web.xmlにおける下記の部分は、JAX-RSサンプルを参考に、アプリケーション毎に変更してください。
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>test.HelloApplication</param-value>
</init-param>
動作確認
JAX-RSが正しくセットアップされたことを確認するために動作テストを行います。
サンプルでは、HTMLでもないプレーンテキストとして文字列を出力します。
[2] HelloApplication.java
package test;
import java.util.HashSet;
import java.util.Set;
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
@ApplicationPath("/rest")
public class HelloApplication extends Application {
public HelloApplication(){
}
@Override
public Set<Class<?>> getClasses() {
Set<Class<?>> set = new HashSet<Class<?>>();
set.add(HelloWorld.class);
return set;
}
}
[3] HelloWorld.java
package test;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("/hello")
public class HelloWorld {
@GET
@Produces(MediaType.TEXT_PLAIN)
public String hello(){
String txt = "hello";
return txt;
}
}
デプロイしてTomcatを起動、ページ(http://localhost:8080/rest/hello)にアクセスしてください。
"hello"と表示されたら、環境設定はこれで完了です。