Bill Burke『JavaによるRESTfulシステム構築』(オライリー, 2010)
JAX-RSについて解説した好著『JavaによるRESTfulシステム構築』のサンプルプログラムをEclipseで動かす方法を紹介します。ちょっと長いので、面倒な人は本のとおりにコンソールから実行するといいでしょう。
- JDKをインストールする
- Maven 2.0系列をダウンロード・展開する
- Eclipse Ultimate Standard All in Oneをダウンロード・展開する
- eclipse.iniの最初にjavawの場所を記述する(Program Filesではなく、Progra~1あるいはProgra~2のような、スペースを含まない表記を使う。エクスプローラでディレクトリ、この例では「C:\Progra~2\Java\jdk1.6.0_21\bin」を開けることを確認するといい)
-vm C:\Progra~2\Java\jdk1.6.0_21\bin\javaw
- eclipse.exeをダブルクリックして、Eclipseを起動する
- ウィンドウ→設定で、インストール済みのJREにJDKを追加・有効にする
- m2eclipseをインストールする。Eclipseのヘルプ→新規ソフトウェアのインストールで、http://m2eclipse.sonatype.org/sites/m2e を追加する(名前は適当。m2eclipseなど)
- Eclipse用Maven統合をチェックする
- Eclipseを再起動する(その際、ファイアウォールを通過させる)
- Mavenのインストールに、2.0系列を追加する
- プロキシが必要な場合には、MavanのUser Settingsで指定されたファイルを作り、以下のような設定を記述する
<?xml version="1.0" encoding="UTF-8"?> <settings> <proxies> <proxy> <active>true</active> <protocol>http</protocol> <host>scproxy.aoyama.ac.jp</host> <port>3128</port> </proxy> </proxies> </settings>
- RESTEasyのsrc.zipをダウンロード・展開する
- Eclipseで、ファイル→インポート→Maven→Mavenプロジェクトの具体化→次へ→完了
- examples/oreilly-workbookを選択する
- 完了をクリックし、しばらく待つ
- プロジェクト・エクスプローラでworkbook-ex03_1を右クリック→実行→Maven install
- 「Address already in use: JVM_Bind」というエラーが出たら、コマンドプロンプトでnetstatとして、ポート9095と9999を確認、使われているポートを確認して、pom.xmlを修正する(9095を変更した場合は、CustomerResourceTest.javaも修正が必要)。WindowsならTCPViewを使ってもよい
うまくいけば、次のような結果が表示されるはずです。
------------------------------------------------------- T E S T S ------------------------------------------------------- Running com.restfully.shop.test.CustomerResourceTest *** Create a new Customer *** 79 [12932988@qtp-1704781-0] INFO org.jboss.resteasy.spi.ResteasyDeployment - Deploying javax.ws.rs.core.Application: class com.restfully.shop.services.ShoppingApplication 81 [12932988@qtp-1704781-0] INFO org.jboss.resteasy.spi.ResteasyDeployment - Adding singleton resource com.restfully.shop.services.CustomerResource from Application javax.ws.rs.core.Application Created customer 1 Location: http://localhost:9095/customers/1 *** GET Created Customer ** Content-Type: application/xml <customer id="1"> <first-name>Bill</first-name> <last-name>Burke</last-name> <street>256 Clarendon Street</street> <city>Boston</city> <state>MA</state> <zip>02115</zip> <country>USA</country> </customer> **** After Update *** Content-Type: application/xml <customer id="1"> <first-name>William</first-name> <last-name>Burke</last-name> <street>256 Clarendon Street</street> <city>Boston</city> <state>MA</state> <zip>02115</zip> <country>USA</country> </customer> Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.217 sec Results : Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 [INFO] [jetty:stop {execution: stop-jetty}] [INFO] Stopping server 0 [INFO] [install:install] [INFO] Installing C:\Users\yabuki\Desktop\resteasy-jaxrs-2.0.1.GA\examples\oreilly-workbook\ex03_1\target\workbook-ex03_1-1.0.war to C:\Users\yabuki\.m2\repository\com\oreilly\rest\workbook\workbook-ex03_1\1.0\workbook-ex03_1-1.0.war [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------------ [INFO] Total time: 4 seconds [INFO] Finished at: Tue Oct 05 16:17:52 JST 2010 [INFO] Final Memory: 15M/35M [INFO] ------------------------------------------------------------------------ 2010-10-05 16:17:52.392::INFO: Shutdown hook executing 2010-10-05 16:17:52.841::INFO: Shutdown hook complete
うまくいかないとき
- Eclipseを再起動する
- 実行→Maven clean
workbook-ex05_2は実行方法が変わります。右クリック、実行、実行の構成で適当な規定ディレクトリを選択、ゴールを「jetty:run」としてください。
ピンバック: Tweets that mention Eclipse上のJavaによるRESTfulシステム構築 | inquisitor -- Topsy.com
ピンバック: なまこの日誌 - Java読書会BOF『JavaによるRESTfulシステム構築』を読む会 第一回