Http://www.wakhok.ac.jp/~tatsuo/ws2/ 2006年11月15日 植田龍男 Webサービス II (第8回) http://www.wakhok.ac.jp/~tatsuo/ws2/ 2006年11月15日 植田龍男.

Slides:



Advertisements
Similar presentations
Wiki と Web サービス API. Wiki と Web サービス API ( 1 )  Web サービス API の流行 Blog が投稿用の Web サービス API を提供 Amazon 、 Google 、 Yahoo などが各種情報 取得のための Web サービス API を提供.
Advertisements

© Copyright the Seasar Foundation and the others all rights reserved. 1 S2Axis2 による Web2.0 らくらく実践 2006/05/14 Seasar Conference 2006 Spring 鈴木 貴典.
Web アプリケーション開発 ~図書館管理システム~ 北海道情報大学 情報メディア学 部 情報メディア学科 新井山ゼミ 高橋 隼.
Web サービス II ( 第 13 回 )‏ 2008 年 1 月 9 日 植田龍男. 本日の目的 Web サービスの歴史と将来の展望 (1) WSDL 2.0 の登場 ‏ Jersey プロジェクト Ver 0.5 による開発.
応用 Java(Java/XML) 第 10 回 2006 年 7 月 14 日 植田龍男. 後半の内容の予定 XPath (6/9) 、 XSLT (6/16) 名前空間 (Namespace) (6/16) XML 文書の妥当性の検証 (6/23) DTD, W3C XML Schema SOAP.
WebサービスII (第12回)‏ 2007年12月19日 植田龍男.
2006年9月27日 植田龍男 Webサービス II (第1回) 年9月27日 植田龍男.
Processing + WiiRemote
社会人学習講座 「Javaプログラミング概論」
難しいことは置いといて、 取り合えず 「BlazeDS」 を使って、 Flash、AIRアプリから Javaオブジェクトのメソッドを呼び出すための 手順書(Windows版) 2008年2月 Lecce.
Webサービスに関する基本用語 Masatoshi Ohishi / NAOJ & Sokendai
第9回 2007年6月22日 応用Java (Java/XML).
JPAを利用した RESTful Webサービスの開発
2006年11月22日 植田龍男 Webサービス II (第9回) 年11月22日 植田龍男.
.NET テクノロジー を利用した SAP ソリューションの拡張 (3階層化) (評価環境構築ガイド)
東京工科大学 コンピュータサイエンス学部 亀田弘之
オペレーティングシステムⅡ 第11回 講師 松本 章代 VirtuaWin・・・仮想デスクトップソフト.
高エネルギー加速器研究機構 素粒子原子核研究所 千代浩司
高エネルギー加速器研究機構 素粒子原子核研究所 千代浩司
Java I 第2回 (4/18)
REST型Webサービスによる 楽曲検索システムの開発
WebサービスII (第10回) 2007年11月28日 植田龍男.
Mavenによる プロジェクト管理 近畿大学理工学部 情報学科3年  小野実.
Iアプリプログラミング その1  鳥居秀徳.
WSDL と JAX-RPC 年10月13日 Webサービス II (第3回) WSDL と JAX-RPC 年10月13日.
Java I 第2回 (9/22).
第5回 2007年5月25日 応用Java (Java/XML).
第2回:Javaの変数と型の宣言 プログラミングII 2007年10月2日.
キャンパスクラウドによる 実験環境の構築 情報ネットワーク特論 講義資料.
2005年11月17日 Webサービス II (第6回) 年11月17日.
WebサービスII (第8回) 2007年11月14日 植田龍男.
HTTPプロトコルとJSP (1) データベース論 第3回.
Curlの仕組み.
WSDL と JAX-RPC 年10月20日 Webサービス II (第4回) WSDL と JAX-RPC 年10月20日.
2005年10月6日 植田龍男 Webサービス II (第2回) 年10月6日 植田龍男.
TA 高田正法 B10 CPUを作る 2日目 SPIMのコンパイル TA 高田正法
基幹理工学研究科 情報理工学専攻 後藤研究室 修士1年 魏 元
RMI ソフトウェア特論 第6回 /
Webサービスを使った クライアント・プログラム
九州大学キャンパスクラウド 利用法 情報ネットワーク特論 講義資料.
高エネルギー加速器研究機構 素粒子原子核研究所 千代浩司
第12回 2007年7月13日 応用Java (Java/XML).
プロジェクト演習Ⅱ インタラクティブゲーム制作 イントロダクション2
第10回 2007年6月29日 応用Java (Java/XML).
Webサービス II(第3回) 2007年10月10日.
第11回 2007年7月6日 応用Java (Java/XML).
第8回 2007年6月15日 応用Java (Java/XML).
第3回 2007年4月27日 応用Java (Java/XML).
WebサービスII (第7回) 2007年11月7日 植田龍男.
第6回 2007年6月1日 応用Java (Java/XML).
EclipseでWekaのAPIを呼び出す
Javaによる Webアプリケーション入門 第7回
10-1 SAXの概要 10-2 Saxプログラミングの基礎 10-3 saxのプログラム例
Javaによる Webアプリケーション入門 第2回
7.4 intanceof 演算子 7.5~7.9パッケージ 2003/11/28 紺野憲一
第2回 2007年4月20日 応用Java (Java/XML).
2006年11月8日 植田龍男 Webサービス II (第7回) 年11月8日 植田龍男.
第13回 2007年7月20日 応用Java (Java/XML).
パッケージ,アクセス修飾子 2008年4月27日 海谷 治彦.
応用Java(Java/XML) 第7回 2006年6月16日 植田龍男.
JDBC ソフトウェア特論 第3回.
Webアプリケーションと JSPの基本 ソフトウェア特論 第4回.
ASP.NET 2.0による Webサービスの構築 2008年10月18日 こくぶんまさひろ.
WebアプリケーションとTomcat ― これまでの復習とこれからの予習 ―
ユビキタスコンピューティングの ための ハンドオーバー機能付きRMIの実装
JSPの基本 J2EE I (データベース論) 第8回 /
プログラミング基礎a 第9回 Java言語による図形処理入門(1) Javaアプレット入門
ASP.NET 2.0による Webサービスの構築 2008年10月18日 こくぶんまさひろ.
2006年10月18日 植田龍男 Webサービス II (第4回) 年10月18日 植田龍男.
応用Java(Java/XML) 第8回 2005年6月9日 植田龍男.
Presentation transcript:

http://www.wakhok.ac.jp/~tatsuo/ws2/ 2006年11月15日 植田龍男 Webサービス II (第8回) http://www.wakhok.ac.jp/~tatsuo/ws2/ 2006年11月15日 植田龍男

今週の Java の2大ニュース!! Java のオープンソース化が正式に発表! http://www.sun.com/software/opensource/java/ Java SE 6 がβ版ではなくなりました! JDK 6 Release Candidate http://java.sun.com/javase/downloads/ea.jsp

本日の目標(その1) Java SE 6 をインストールしよう Windows版は管理者権限が必要 (自分のノートPCなどを利用してください。) 実習室のマシンの場合 Linux で作業してください。 注意: 250Mbyte ほどの空き容量が必要

インストールの手順 Linux 用のインストールプログラム jdk-6-rc-linux-i586.bin をダウンロード (RPMの形式もあるが、これも管理者権限が必要になる) 適当なディレクトリで実行 sh jdk-6-rc-linux-i586.bin 作業したディレクトリの下に展開される jdk1.6.0/bin を PATH の先頭に追加

設定ファイルの例 .profile if [ `uname` = "Linux" ]; then PATH=~/jdk1.6.0/bin:.:$PATH export PATH fi

JAXB を使ってみよう(1) xjc, schemagen ツールの利用 JavaからXMLへ、XMLからJavaへの確認 ビルドファイルは不要 javac と java のみ!

JAXBを使ってみよう(2) RESTful な Webサービスへのアクセス   これも xjc,javac と java だけでできるはず

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

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

JAX-WS for REST の現状 一部の仕様が流動的(?) バグ有り(?) 情報も少ない 参照) Marc Hadley氏のブログ http://weblogs.java.net/blog/mhadley/archive/2006/03/restful_web_ser_1.html

サンプル(Yahoo Image検索) Yahoo Image Search の API http://developer.yahoo.com/search/image/V1/imageSearch.html XML Schema も公開 http://search.yahooapis.com/ImageSearchService/V1/ImageSearchResponse.xsd

サンプル実行までの手順 スキーマから xjc でJavaのソースを生成 (この時、一部手を入れる必要あり? どうなったのだろう?) 生成されたソースのコンパイル(javac) クライアントのコンパイル(javac) 実行(java)

xjc と生成されるソース xjc ImageSearchResponse..xsd yahoo/srchmi 以下に ResultSet.java, ResultType.java, ThumbnailType.java ObjectFactory.java, package-info.java

ちょっと修正が必要だったが? ResultSet.java @XmlRootElement(name = “ResultSet”) public class ResultSet { @XmlRootElement(name = "ResultSet") あれ?名前空間の指定が見当たらない!

またまた仕様が変更された? 名前空間の情報は package-info.java に記述されている package-info.java @javax.xml.bind.annotation.XmlSchema( namespace = "urn:yahoo:srchmi", elementFormDefault = javax.xml.bind.annotation.XmlNsForm. QUALIFIED) package yahoo.srchmi;

サンプルソース(1) 前回と同じ URI nsURI = new URI("urn:yahoo:srchmi"); QName serviceName = new QName("yahoo",nsURI.toString()); QName portName = new QName("yahoo_port",nsURI.toString()); Service s = Service.create(serviceName);

サンプルソース(2) 前回と同じ URI address = new URI("http", null, "api.search.yahoo.com", 80, "/NewsSearchService/V1/newsSearch", "appid=jaxws_restful_sample&type=all& results=10&sort=date&query=Japan“ ,null); s.addPort(portName, HTTPBinding.HTTP_BINDING, address.toString());

サンプルソース(3) JAXBContext jbc = JAXBContext.newInstance( "yahoo.yn" ); Dispatch<Object> d = s.createDispatch(portName, jbc, Service.Mode.PAYLOAD); Map<String, Object> requestContext = d.getRequestContext(); requestContext.put( MessageContext.HTTP_REQUEST_METHOD, "GET");

サンプルのソース(4) 前回は StreamSource ss = (StreamSource)d.invoke(null); Unmarshaller u = jbc.createUnmarshaller(); ResultSet rs = (ResultSet)u.unmarshal(ss);

サンプルのソース(4) 今回は ResultSet rs = (ResultSet)d.invoke(null); for (ResultType r: rs.getResult()) { System.out.println( r.getTitle() + “ “ + r.getClickUrl() ); } かなり簡略化された仕様に変更

ビルドファイルはいりません xjc ImageSearchResponse.xsd javac yahoo/srchmi/*.java javac YahooImageTest.java java YahooImageTest

通常のWebサービスも簡単に ただし、サーバとの互換性が・・・ サーバの側も新しい仕様にしましょう Linux 用の最新の GlassFish で試す? (これは次回に)