Download presentation
Presentation is loading. Please wait.
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
確認 ブラウザからアクセス
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.