WSDL と JAX-RPC http://www.wakhok.ac.jp/~tatsuo/ws2/ 2005年10月20日 Webサービス II (第4回) WSDL と JAX-RPC http://www.wakhok.ac.jp/~tatsuo/ws2/ 2005年10月20日.

Slides:



Advertisements
Similar presentations
1 WSIF における Web サービス・メソッドの自動設 定 2004 年 3 月 23 日 越田高志 松江工業高等専門学校 情報工学科 電子情報通信学会 2004年総合 大会.
Advertisements

1 プリミティブ Web サービスの 入出力データに関する一考察 2005 年 3 月 21 日 松江工業高等専門学校 情報工学科 奈良先端科学技術大学院大学 情報科学研究科 越田高志 電子情報通信学会 2005年総合 大会.
年度 J2EE II 稚内北星学園大学 情報メディア学部 専任講師 安藤 友晴. 2 この講義の位置づけ 3年前期の「データベース論 (J2EE I) 」に続く講義。 「データベース論」の講義内容を理解 していることが前提。
Web アプリケーション開発 ~図書館管理システム~ 北海道情報大学 情報メディア学 部 情報メディア学科 新井山ゼミ 高橋 隼.
1 JSP の作成 JSF による Web アプリケーション 開発 第 4 回. 2 ここでの内容 JSF での JSP の作り方と動かし方につい て学ぶ。
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日 植田龍男.
TeX で数式を書くための PowerPoint アドイン Ver (2011/06/26) Ver. 0.1 (2007/5/30)
難しいことは置いといて、 取り合えず 「BlazeDS」 を使って、 Flash、AIRアプリから Javaオブジェクトのメソッドを呼び出すための 手順書(Windows版) 2008年2月 Lecce.
Remote Method Invocation
安全なログオン手順 2004/08/26 Port139 伊原 秀明.
2004年度 サマースクール in 稚内 JSFによるWebアプリケーション開発
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) プロトタイプの作成
WebサービスII (第10回) 2007年11月28日 植田龍男.
Javaのための暗黙的に型定義される構造体
エンタープライズアプリケーション II 第10回 / 2006年7月23日
Mavenによる プロジェクト管理 近畿大学理工学部 情報学科3年  小野実.
Servlet J2EE I 第8回 /
WSDL と JAX-RPC 年10月13日 Webサービス II (第3回) WSDL と JAX-RPC 年10月13日.
2005年11月17日 Webサービス II (第6回) 年11月17日.
卒研:データベースチーム 第4回 DOMを使った処理
MSBuild 色々出来るよ 2011/04/02 お だ.
WebサービスII (第8回) 2007年11月14日 植田龍男.
ビューとコントローラ.
HTTPプロトコルとJSP (1) データベース論 第3回.
Curlの仕組み.
①データ構造 ②アルゴリズム ③プログラム言語 ④マークアップ言語
JSFによるWebアプリケーション開発 第6回
2005年10月6日 植田龍男 Webサービス II (第2回) 年10月6日 植田龍男.
JSPの作成 J2EE II 第3回 2005年4月10日.
RMI ソフトウェア特論 第6回 /
入出力データ型に透過な Webサービス動的実行システム 松江工業高等専門学校 情報工学科 越田高志 情報処理学会第68回全国大会
Webサービスを使った クライアント・プログラム
Stateful Session Beans
第12回 2007年7月13日 応用Java (Java/XML).
第10回 2007年6月29日 応用Java (Java/XML).
SOAP/UDDI/WSDLによるB2Bシステムの開発
SOAP/UDDI/WSDLによるB2Bシステム構築の一事例
Webサービス II(第3回) 2007年10月10日.
第11回 2007年7月6日 応用Java (Java/XML).
暗黙的に型付けされる構造体の Java言語への導入
WebサービスII (第7回) 2007年11月7日 植田龍男.
Javaによる Webアプリケーション入門 第6回
Jakarta Struts (2) ソフトウェア特論 第11回.
Javaによる Webアプリケーション入門 第2回
電子情報通信学会 2006年総合大会 Webサービス標準化 の提案と実装 2006年3月26日 松江工業高等専門学校 越田高志.
独習XML ~第3章 文書と構造~ 3.3 スキーマ 3.3 XML Schema
2006年11月8日 植田龍男 Webサービス II (第7回) 年11月8日 植田龍男.
JXTA Shell (1) P2P特論 (ソフトウェア特論) 第4回 /
Javaによる Webアプリケーション入門 第11回
第13回 2007年7月20日 応用Java (Java/XML).
XML Schema (1) ソフトウェア特論 第3回 /
応用Java(Java/XML) 第7回 2006年6月16日 植田龍男.
Webアプリケーションと JSPの基本 ソフトウェア特論 第4回.
Javaによる Webアプリケーション入門 第8回
WebアプリケーションとTomcat ― これまでの復習とこれからの予習 ―
JSPの基本 データベース論 第2回.
稚内北星学園大学 情報メディア学部 専任講師 安藤 友晴
ユビキタスコンピューティングの ための ハンドオーバー機能付きRMIの実装
JSPの基本 J2EE I (データベース論) 第8回 /
2006年10月18日 植田龍男 Webサービス II (第4回) 年10月18日 植田龍男.
応用Java(Java/XML) 第8回 2005年6月23日 植田龍男.
Presentation transcript:

WSDL と JAX-RPC http://www.wakhok.ac.jp/~tatsuo/ws2/ 2005年10月20日 Webサービス II (第4回) WSDL と JAX-RPC http://www.wakhok.ac.jp/~tatsuo/ws2/ 2005年10月20日

この時間の目的 Webサービスと JAX-RPC JWSDP 1.6 における取り扱い WSDLの理解 Antツールによる開発 (ビルドファイルの活用)

開発作業のポイント サービスの定義は WSDLに (Web Service Definition Language) (War 形式のファイルを生成、配備) WSDL からクライアント側も構築 サービスの実行までの手順は Antのビルドファイルに

復習:WSDL の概説 Document Type は <definitions> 要素 WSDL の名前空間名 "http://schemas.xmlsoap.org/wsdl/ 以下の記述ではPrefixを省略 他に SOAP, XML Schema の定義も利用 内部に5個の要素が順に登場 <types>, <message>, <portTyp>, <binding>, <service>

<types> データ型の定義 W3C XML Schema でデータの型を定義 <types> <schema xmlns="http://www.w3.org/2001/XMLSchema"> <complexType name="Organization"> <sequence> <element name="id" type="xsd:string"/> <element name="name" type="xsd:string"/> </sequence> </complexType> </schema> </types>

<messages> 交換されるデータ Javaのメソッドの引数、返り値に対応 <message name="HelloIF_sayHelloBack"> <part name="String_1" type="xsd:string"/> </message> <message name="HelloIF_sayHelloBackResponse"> <part name="result" type="xsd:string"/>

<portType> インタフェース サービスのインタフェースに対応 <portType name="HelloIF">   <operation name="sayHelloBack" parameterOrder="String_1"> <input message="tns:HelloIF_sayHelloBack"/> <output message="tns:HelloIF_sayHelloBackResponse"/> </operation> </portType>

<binding> 通信の実装へ サービスの通信手段(Soapメッセージ等) <binding name="HelloIFBinding" type="tns:HelloIF"> <operation name="sayHelloBack"> <input> <soap:body encodingStyle= "http://schemas.xmlsoap.org/soap/encoding/" use="encoded" /> </input>

<service> サービスにアクセス サービスのエンドポイントなどを指定 <service name="HelloWorldService"> <port name="HelloIFPort" binding="tns:HelloIFBinding"> <soap:address location=“http://localhost:8080/hello"/> </port> </service>

では、サンプルHelloWorldから 最初に存在するもの HelloWorldService.wsdl その他の設定ファイル web.xml, config.xml, jaxrpc-ri.xml tomcat.xml Ant による開発 build.xml, build.properties

補足: JWSDP 1.6 の Ant 単体のものと同じ+少し便利な環境設定 環境変数 JAVA_HOME, JWSDP_HOME ANT_HOMEなど jwsdp-shared\bin\setenv.bat を呼び出す %ANT_HOME%\bin は PATHに追加 CATALINA_HOMEも設定不要 (配備情報はbuild.properties, tomcat.xml)

HelloWorld のbuild.xml (1) 主要なターゲット サーバ側の構築 generate-server, compile-server create-war, build-war, deploy-war (デフォルトは build = build-war) クライアント側の構築 generalte-client, comile-client run-client

HelloWorld のbuild.xml (2) generate-server ツール wscompile WSDL を元にサーバ側に必要なソースファイルを自動生成 HelloIF.java, HelloIF_Impl.java, それらのコンパイル (自動生成されたファイルは作業領域に)

HelloWorld のbuild.xml (3) compile-server サービスの実装とそのコンパイル( javac ) HelloImpl クラス HelloIF に定義されたメソッド(WSDLで定義)を実装する

HelloWorld のbuild.xml (4) create-war Warアーカイブの生成(第1段階) コンパイルされたバイトコードをまとめる HelloWorld-raw.war

HelloWorld のbuild.xml (5) build-war 実際に配備されるWarファイルの生成 ツール wsdeploy 必要なライブラリ等も付加 HelloWorldディレクトリに HelloWorld.warを生成 (デフォルトの作業) 一時ファイルの消去などの後始末

HelloWorld のbuild.xml (6) deploy-war WarファイルをWebコンテナへ配備 build.properties tomcat.xml の情報を元にコピー

HelloWorld のbuild.xml (7) generate-client ツール wscompile WSDLの情報を元にクライアント側のソースファイルを自動生成、コンパイル HelloIF.java, Stubのクラス他 作業は一時的な作業領域に

HelloWorld のbuild.xml (8) compile-client クライアントのプログラム HelloClientのコンパイル javac で実行

HelloWorld のbuild.xml (9) run-client クライアントプログラムの実行 java コマンドによる

作業手順のまとめ Webコンテナ(Tomcat)の起動 サーバ側の構築 ant Warファイルの配備 ant deploy-war (サービスの開始) クライアント側の構築と実行 ant run-client

丁寧に手順を追うと ant generate-server ant compile-server ant create-war ant build-war ant deploy-war ant generate-client ant compile-client ant run-client

別のサンプル(BusinessData) 企業情報の登録と検索サービス クラス Organization サービス Organization getOrganization( String name ) String addOrganizaiton( Organization org ) String 情報のみのHelloWorldより少し複雑

サンプルのポイント(<types>) <schema xmlns="http://www.w3.org/2001/XMLSchema"> <complexType name="Organization"> <sequence> <element name="id" type="xsd:string"/> <element name="name" type="xsd:string"/> </sequence> </complexType> </schema> </types> クラス Organizationが自動生成される