SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine(コードジン) DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

japan.internet.com翻訳記事

Jersey、AJAX、JSONを使ってRESTに挑戦しよう

RESTのメリットをJavaコードに簡単に取り込む方法

Jerseyの使用に向けてアプリケーションを設定する

 CardDealerアプリケーションにおいてJerseyを使用するには、JerseyサーブレットをURLルートに設定する必要があります。また、Javaリソースクラスとして使用するJavaコードの場所をJerseyに知らせる必要があります。この情報は、Webアプリケーションのweb.xmlファイルにあります。リスト3に、Jerseyの構成設定を行うweb.xmlの抜粋を示します。

リスト3 REST Webアプリケーションのweb.xmlの抜粋
<servlet> 
  <servlet-name>REST</servlet-name>
  <servlet-class>
    com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class>
  <!-- Make classes in com.edmunds.fun.cards Jersey RESTful-->
  <init-param>
    <param-name>com.sun.jersey.config.property.packages</param-name>
    <param-value>com.edmunds.fun.cards</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
</servlet>
 <!-- Map /rest/* to Jersey -->
<servlet-mapping>
  <servlet-name>REST</servlet-name>
  <url-pattern>/rest/*</url-pattern>
</servlet-mapping> 

RESTエントリポイントを設定する

 リスト3では、REST URLのエントリポイントを/rest/*に設定していることに注意してください。以下のコード行は、リスト3で設定されたエントリポイントに従った、RESTエントリポイントの例を示したものです。

http://localhost:9090/card-dealer-rest/rest/....

 各パーツはそれぞれ次の情報を表します。

  • http://localhost:9090:ドメイン
  • /card-dealer-rest/:Webアプリケーション
  • /rest/:RESTエントリポイント

 RESTトラフィックは/rest/*にダイレクトします。Webサーバが次のような標準的なWebトラフィックのURLを処理できるように、ルートディレクトリは空けておきたいためです。

 ここでの利点は、Webアプリケーションを、RESTサーバと、RESTサーバを使用する通常のWebページを提供するWebサイトの両方として設定できるという点です。RESTサーバとWebページに同じドメインを共有させるのは、RESTサーバに対するAJAXコールバックを記述し、クロスサイトのセキュリティ問題を回避できるようにするためです。AJAXでは、呼び出し元のサイト以外のサイトに対し、XmlHttpRequestを呼び出すことができません。このため、すべてを同じサイトに配置することにより、RESTサービスをWebページで利用できるようにしています。

カード画像ディレクトリを定義する

 上述のように、CardDealerでは、Springのインジェクションを用いて、CardDealerHelperにカード画像ディレクトリの場所を設定します。また、空のカード画像のファイル名を設定するためにもSpringのインジェクションを使用しています。この情報は、リスト4に示すように、Springコンテキスト構成ファイルにあります。

リスト4 Spring構成設定を行うWebアプリケーションファイルspring-context.xmlの抜粋
<context:component-scan base-package="com.edmunds.fun.cards" />
<!--
  Inject cardDealerHelper with the information for
  imageDirectoryLocationFileSpec and emptyShoeImageFileSpec
-->
<bean id="cardDealerHelper" class="com.edmunds.fun.cards.CardDealerHelper">
  <property name="imageDirectoryLocationFileSpec" value="C:/Projects/CardGames/card-deck" />
  <property name="emptyShoeImageFileSpec" value="empty-shoe.jpg" />
</bean>

次のページ
Jettyを使用してRESTサーバを起動する

この記事は参考になりましたか?

japan.internet.com翻訳記事連載記事一覧

もっと読む

この記事の著者

japan.internet.com(ジャパンインターネットコム)

japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.comEarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

Bob Reselman(Bob Reselman)

Edmunds Incのシニアテクニカルライター兼テクニカルエディター。Edmunds Inc.は、多彩な情報と高い可用性を誇る、最先端のJavaベースの各種自動車情報Webサイトを運営する大手パブリッシャーである。http://www.edmunds.com/およびhttp://www.insid...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/4596 2009/12/09 14:00

おすすめ

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー