ちょっとWeb APIみたいなものを作る機会があり、個人的にJavaが好きなのでJAX-RSを使って開発してみる事にしました。開発/動作環境の構築方法を残すことにします。
JAX-RSでRESTfulアプリを作るための環境構築作業は以下。
※JDKはインストール済みである前提
①Tomcatインストール
②Mavenインストール
③jerseyインストール(Eclipse+Tomcat環境)
ちなみに以下の書籍で勉強中です。
JAX-RSはJavaでRESTアーキテクチャのアプリを作るための仕様です。具体的にはURLを指定することでデータのやり取りをする仕組み(Web APIの方が通りが良いかも?)が作れます。
RESTとかRESTfulという名前は聞いていましたが、どうもHTTP通信(GETとかPOSTとか)で様々な処理を行えるようにアプリを作りこむようです。
JAX-RSはあくまで仕様なので、実際に実装したものが必要になります。色々あるようですが、日本語の情報が多そうなのは「Apache CXF」か「Jersey」でした。とりあえず最近の情報が多い「Jersey」で環境を作ります。ちなみにジャージーと読むらしいです。
最近の開発では一般的なのか、「Jersey」を使うにも「Maven」を使った方が便利なようですね。実際使ってみたらライブラリが自動でDLされました。、設定がちゃんとできればすごく便利ですね。。。流行るわけだ。
では以降が環境構築。
①Tomcatインストール
ApacheのサイトからCoreのzipか、Service installerをダウンロードしてインストールします。
Windowsでサービス登録等の手間を省きたいならService installerを使い、とりあえずファイルとして配置してインストールしない場合はzipが良いかと。
JAVA_HOMEやTOMCAT_HOMEの環境変数を設定すれば、あとは普通に動きます。
今回はTomcat 7(7.0.67)をインストールしてみました。
※JDKは1.8.0_65を使っています
Eclipseと連携させるためにEclipse側で以下設定。
メニュー->Window->Preferences->Server->Runtime Environments選択。「Add..」ボタン押下後、先ほどインストールしたTomcatと同バージョンの項目(「Apache Tomcat v7.0」)を選択し、「Next」ボタン押下。
Tomcat installation directoryの「Browse…」ボタンを押下し、インストール済みのTomcatのホームフォルダを指定。「JRE」はプロジェクト開発で使用するJDKを指定し、「Finish」ボタン押下。最後に「OK」ボタン押下で作業完了。
②Mavenインストール
Apacheのサイトからファイルをダウンロードします。
今回はMaven 3.2(3.2.5)を使ってみます。
※JDKは1.6以上でないとダメらしい
バイナリの「apache-maven-3.2.5-bin.zip」をダウンロードし、解凍。
環境変数「M2_HOME」をapache-maven-○.○.○フォルダとする。
※例)apache-maven-3.2.5-bin.zipを解答した場合、apache-maven-3.2.5-bin内に作成されるapache-maven-3.2.5
環境変数「M2_HOME」をapache-maven-○.○.○\binフォルダとする。
※例)apache-maven-3.2.5-bin.zipを解答した場合、apache-maven-3.2.5-bin内に作成されるapache-maven-3.2.5\bin
プロキシ環境下の場合、apache-maven-○.○.○\conf\settings.xmlにプロキシ設定を記述する。
③jerseyインストール(Eclipse+Tomcat環境)
今回はMaven(pom.xml)を使ってインストールしますが、別途ダウンロードして使う方法もあるようです。
Eclipseは「Eclipse IDE for Java EE Developers」を使用する事にしました。バージョンは現時点で最新のMars。
Windows環境で開発するので、Eclipseの文字コード設定をUTF-8に変更しておきます。
メニューからWindow->Preferencesで開いたダイアログからGeneral->Workspaceを選択。
「Text file encoding」をOther(UTF-8)に変更し、「OK」ボタン押下。
Tomcatとの連携は元々できるようなので、適当なプロジェクトを作成。メニューからFile->New->Other->Maven->Maven Projectを選択。
「Create a simple project(skip archetype selection)」と「Use default Workspace location」にチェックし、「Next」ボタン押下。
Artifact設定は以下。
・Group id :組織内等での内部組織を識別するための名前で、一般的にルートパッケージ名を指定
※例)メインの実行プログラムの場所が「△△/src/java/main/prog/maven/○○.java」なら、ルートパッケージ名は「main.prog.maven」
・Artifact id:プロジェクトを識別する名前で、一般的にプロジェクト名
※例)作成するファイルが△△.warなら、プロジェクト名を「△△」とする
・versionはデフォルト(0.0.1-SNAPSHOT)のまま
・Packagingはwarを選択
親プロジェクト(設定を引き継ぐpom.xml)は持たないのでParent Project以降、画面下半分の入力はなし。
生成されたプロジェクトの「pom.xml」を編集。
<project ...> ... <dependencies> <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-server</artifactId> <version>1.18.4</version> </dependency> </dependencies> </project>
バージョン部分に関してはこのサイトで調べられます。
検索ワードに「jersey-server」と入れて、存在するバージョンを調べましょう。
pom.xmlで「web.xml is missing and
プロジェクトを右クリック->Java EE Tools->Generate Deployment Descriptor Stub選択。これでweb.xmlが自動生成されます。
とりあえず、以上。
お疲れ様でした。