Presentation is loading. Please wait.

Presentation is loading. Please wait.

WebサービスII (第8回) 2007年11月14日 植田龍男.

Similar presentations


Presentation on theme: "WebサービスII (第8回) 2007年11月14日 植田龍男."— Presentation transcript:

1 WebサービスII (第8回) 2007年11月14日 植田龍男

2 本日の目的 RESTful なWebサービス(再び) RESTful 用の新しい Java の API JSR-311 で策定中(ほぼ確定)
参照実装の提供 Jerseyプロジェクト (Glassfishのサブプロジェクトの1つ) 現在 ver 0.4 (年内に 0.5 ?)

3 前回までやったこと JAX-WS 2.0 のアーキテクチャ POJO+アノテーションを利用した開発 SOAPメッセージとメッソッド呼び出し
WSDL

4 復習:Webサービスの構築開始 import javax.jws.*; @WebService public class Hello {
public String sayHello( String name ) { return “Hello,” + name; }

5 RESTful なWebサービス REST(Representational State Transfer)
HTTP で XMLのデータなどを交換するスタ イルのWebサービス SOAP(XML-RPC) vs. REST ?? JAX-WS は JAX-RPC の後継だが RESTに も対応可能 – JAXB がベース サービス固有のXML Java のクラス

6 javax.xml.ws パッケージ Service クラス Serviceのインナクラス enum ServiceMode
ServiceMode.MESSAGE ServiceMode.PAYLOAD Provider, Dispatch, Response などのイ ンタフェース群

7 サンプル(Yahoo Image検索) Yahoo Image Search の API
/V1/imageSearch.html XML Schema も公開 hService/V1/ImageSearchResponse.xsd

8 サンプル実行までの手順 スキーマから xjc でJavaのソースを生成 生成されたソースのコンパイル(javac)

9 以前にやったことのまとめ Java SE 6 の新しいAPIとJAXBを利用 既存のRESTful なWebサービスにアクセス
クライアント側はある程度対応できた

10 これからやりたいこと RESTful な Webサービスのサーバ側 JAX-WS の枠組みの中に構築 POJO + アノテーションのスタイル
GlassFish サーバへ組み込み?

11 JSR-311 RESTful なWebサービスのAPIを策定 参照実装 Jerseyプロジェクト

12 サービスのサンプル @UriTemplate("/helloworld") public class public String getClichedMessage() { return "Hello World!"; }

13 サービスのコンパイル ライブラリ jsr311-api.jar をクラスパスに指定
javac -cp ~/jersey-0.4-ea/lib/jsr311-api.jar HelloWorldResouce.java

14 サービスを確認するには? Webサーバと 「コンテナ」が必要 今回は Jerseyと共に配布されている

15 サーバのプログラム(1) public class Main { public static void main(String[] args) { HttpHandler handler = ContainerFactory.createContainer( HttpHandler.class, HelloWorldResource.class);

16 サーバのプログラム(2) HttpServer server = HttpServer.create( new InetSocketAddress(9998), 0); server.createContext("/", handler); server.setExecutor(null); server.start(); :

17 サーバのコンパイルと実行 ant もしくはシェルスクリプトで構築 #!/bin/bash LIB=~/jersey-0.4-ea/lib
javac -classpath.:$LIB/activation.jar: $LIB/ant.jar:$LIB/comresrcgen.jar: $LIB/grizzly jar:$LIB/http.jar: $LIB/jaxb-api.jar:$LIB/jaxb-impl.jar ….

18 確認 ブラウザからアクセス


Download ppt "WebサービスII (第8回) 2007年11月14日 植田龍男."

Similar presentations


Ads by Google