経緯とGoles
さてEclipseのインストール、WildFlyのインストールまで完了したら、いよいよプログラミングです。今回は簡単なサーブレット、JSPプログラムを作っていこうと思いますが、せっかくなのでJava EE6で採用されたJAX-RSを利用して作成したいと思います。
また、今後のパッケージ追加が楽になるようにMavenプロジェクト化していきたいと思います。
JAX-RSのポイント
- 従来のサーブレットのようにWeb.xmlにURLマッピングの設定がアノテーションで可能となった。
- パラメータのバインドが簡単
ステップ1.動的Webプロジェクトを作成
File | New | Dynamic Web Prjectを選択します。
プロジェクトの初期設定を行っていきます。
Project name:プロジェクト名です。やる気が出るようにかっこいい名前をつけましょう
その他はそのままで、Next >をクリック
ソースを格納するパスと、ビルドしたクラスファイルなどを格納するフォルダを指定します。
ここでは、最終的にMavenプロジェクトにするので、src/main/javaにEdit...ボタンをクリックして変更してみたのですが、以下の画面のように変更できませんでした。
なんだか悔しいのですが、後で対処するとして、デフォルトのsrcのままNext>をクリックします。
次にContext rootを指定する画面ですが、WebページのURLのディレクトリになるので、こだわって名前をつけたほうが良いですが、練習なので、デフォルトのプロジェクト名と同じ設定のままFinishをクリックします。
気に入らなかった、ソースのディレクトリを変更します。
Project Explorerから作成したプロジェクトを選択して、右クリックから「Properties」をクリックします。
Propertiesから、「Java Build Path」を選択し、Sourceタブを選択します。
右中央にあるAdd Folderでsrc/main/javaを作成し、src/main/javaにチェックを入れてOKををクリック。
src/main/javaが追加されたのが確認できたら、OKをクリックする。
なぜか「ui WebContent」なんて変な名前になっているWebConetentもMaveにそって、src/main/webappに変更します。「ui WebContenet」フォルダをドラッグして、そのままsrc/mainしたに移動します。
そのまま、F2キーを押して名前をwebappに変更します。
プロジェクト右クリック | Configure | Convert to Maven Project
pom.xmlのDependenciesタブのDependenciesのAddボタンから以下の依存関係を追加する。
Group Id:org.jboss.spec.javax.ws.rs
Artifact Id:jboss-jaxrs-api_2.0_spec
Version:1.0.0.Final
Scope:proided
ちなみにpom.xmlの内容は以下のようになりました。
Artifact Id:jboss-jaxrs-api_2.0_spec
Version:1.0.0.Final
Scope:proided
ちなみにpom.xmlの内容は以下のようになりました。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>HellowWorld</groupId> <artifactId>HellowWorld</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.3</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> <plugin> <artifactId>maven-war-plugin</artifactId> <version>2.6</version> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> </configuration> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>org.jboss.spec.javax.ws.rs</groupId> <artifactId>jboss-jaxrs-api_2.0_spec</artifactId> <version>1.0.0.Final</version> <scope>provided</scope> </dependency> </dependencies> </project>