Webサービス II(第3回) 2007年10月10日.

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 鈴木 貴典.
オブジェクト指向 プログラミング 第二回 知能情報学部 新田直也. 講義計画(あくまで予定) 第 1 回 プログラミング言語の種類と歴史 第 2 回 eclipse の基本操作 第 3 回 eclipse のデバッグ機能 第 4 回 構造化プログラミングの復習 第 5 回 演習 第 6 回 構造化指向からオブジェクト指向へ.
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日 植田龍男.
情報理工学部 情報システム工学科 ラシキアゼミ 3年 H 井奈波 和也
Webサービスに関する基本用語 Masatoshi Ohishi / NAOJ & Sokendai
第9回 2007年6月22日 応用Java (Java/XML).
JPAを利用した RESTful Webサービスの開発
2006年11月15日 植田龍男 Webサービス II (第8回) 年11月15日 植田龍男.
2006年11月22日 植田龍男 Webサービス II (第9回) 年11月22日 植田龍男.
Visual Studio 2005による XML Web サービス入門
IDLTM/IONTMを使用した UDON (Universe via Darts ON-line) プロトタイプの作成
REST型Webサービスによる 楽曲検索システムの開発
WebサービスII (第10回) 2007年11月28日 植田龍男.
Google AJAX Search APIのお勉強
Java EE 6 Web Profile SDK Update 2 のねらいとSilverlightからの利用
Servlet J2EE I 第8回 /
WSDL と JAX-RPC 年10月13日 Webサービス II (第3回) WSDL と JAX-RPC 年10月13日.
第5回 2007年5月25日 応用Java (Java/XML).
第2回:Javaの変数と型の宣言 プログラミングII 2007年10月2日.
WebサービスII (第8回) 2007年11月14日 植田龍男.
HTTPプロトコルとJSP (1) データベース論 第3回.
Curlの仕組み.
HTTPプロトコル J2EE I 第7回 /
WSDL と JAX-RPC 年10月20日 Webサービス II (第4回) WSDL と JAX-RPC 年10月20日.
2005年10月6日 植田龍男 Webサービス II (第2回) 年10月6日 植田龍男.
ServletによるWebアプリ作成 入門
RMI ソフトウェア特論 第6回 /
第8章 Web技術とセキュリティ   岡本 好未.
Webサービスを使った クライアント・プログラム
Stateful Session Beans
第12回 2007年7月13日 応用Java (Java/XML).
JDBC J2EE I 第4回 /
第10回 2007年6月29日 応用Java (Java/XML).
第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).
Javaによる Webアプリケーション入門 第6回
Nakano School of Business 経営情報ビジネス科 【 Java概論(Test5)】
JDBC データベース論 第12回.
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日 海谷 治彦.
JDBC J2EE I (データベース論) 第5回 /
Servlet ソフトウェア特論 第7回.
「XML技術者育成教材」 -XMLエンジニア育成のための実践テキスト-
応用Java(Java/XML) 第7回 2006年6月16日 植田龍男.
オブジェクト指向 プログラミング 第二回 知能情報学部 新田直也.
Servlet J2EE I (データベース論) 第12回 /
JDBC ソフトウェア特論 第3回.
Webアプリケーションと JSPの基本 ソフトウェア特論 第4回.
Javaによる Webアプリケーション入門 第8回
ASP.NET 2.0による Webサービスの構築 2008年10月18日 こくぶんまさひろ.
WebアプリケーションとTomcat ― これまでの復習とこれからの予習 ―
JSPの基本 データベース論 第2回.
JSPの基本 J2EE I (データベース論) 第8回 /
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:

Webサービス II(第3回) 2007年10月10日

この時間の目標 JAXBの応用 RESTful なWebサービスへのアクセス

JAXB(再確認) JAXB(Java architecture for XML Binding) Java と XML とのマッピングを提供 新しい Webサービスを支える基礎技術 アノテーションをフルに活用

RESTful なWebサービス 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 などのインタフェース群

サンプル(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)

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

package-info.java ?? 名前空間の情報のみのソース package文へのアノテーション @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.srchmi" ); Dispatch<Object> d = s.createDispatch(portName, jbc, Service.Mode.PAYLOAD); Map<String, Object> requestContext = d.getRequestContext(); requestContext.put( MessageContext.HTTP_REQUEST_METHOD, "GET");

サンプルのソース(4) ResultSet rs = (ResultSet)d.invoke(null); for (ResultType r: rs.getResult()) { System.out.println( r.getTitle() + “ “ + r.getClickUrl() ); }

実行までの手順 Schemaファイルを xjc で処理 (Javaのソースを自動生成) 生成されたソースのコンパイル Webサービスへアクセスするクライアント コンパイル、実行 帰ってきた情報の処理