Download presentation
Presentation is loading. Please wait.
Published byてるえ たけはな Modified 約 7 年前
1
http://www.wakhok.ac.jp/~tatsuo/ws2/ 2006年11月22日 植田龍男
Webサービス II (第9回) 2006年11月22日 植田龍男
2
この時間の目標 Java SE 6 の環境で Webサービスを構築 サーバの再インストール ついでに NetBeans も
3
なぜ、サーバの入れ直し?(1) Java SE 6 からバイトコードの仕様が拡張
Java SE 6 のバイトコードを Java SE 5 ベース のサーバは解釈できない(エラー発生) 回避策:コンパイル時にオプション javac -target 5 hoo.java ただし、問題はこれだけではなかった
4
なぜ、サーバの入れ直し?(2) JAXB のバージョンによって仕様が異なる
旧(javax.xml.bind.annotation.AccessType) JWSDP 2.0 Sun Application Server 8.2 新(javax.xml.bind.annotation.XmlAccessType) Java SE 6 ある時期以降の Sun Application Server 9.x = GlassFish
5
作業手順 管理者権限のユーザでログオン 必要なインストーラの入手 ( y:\ws2 から可能)
java-tools-bundle-windows.exe (Windows) java-tools-bundle-linux.sh (Linux) Java SE 6 のインストールが前提
6
インストール手順(1)
7
インストール手順(2) 使用する Java は jdk1.6.0 を選択
8
インストール手順(3)
9
インストール手順(4) J2EEの開発パッケージも追加する
10
インストール手順(5) 今度はアプリケーションサーバ
11
インストール手順(6)
12
サーバの起動 ブラウザの管理画面で確認
13
Webサービスの構築開始 import javax.jws.*; @WebService public class Hello {
public String sayHello( String name ) { return “Hello,” + name; }
14
本当にこれだけになる 実装クラスを「ごく普通の Java」のプログラムとして書く
( POJO = Plain Old Java Object ) Webサービスのアノテーションを付ける のみ) サーバに渡す(以上で終了) Webサービスも Java SE の守備範囲!
15
開発手法の「昔への回帰」? Webサービスの出発点は Java or XML(WSDL, XML Schema) ?
JWSDP 2.0( Java SE 6 ) は EoDの観点から POJO に回帰 – 手軽でしかも厳密 「難しいフレームワーク」 => Java SE
16
webサービスまで手作業で Webサービスに必要なものの自動生成 通信でやり取りされるクラス定義
WSDL(Web Service Definition Langage) のファイル (上記の通信用のクラスの schema定義を内部に含む) 設定ファイルの準備(サーバに知らせる情報) Warアーカイブ化してデプロイ
17
自動生成(wsgenツール) javac hello\Hello.java wsgen -cp . hello.Hello
HelloService.wsdl, HelloServiceTypes.xsd hello.jaxws 以下に sayHello.java, sayHelloResponse.java sayHello.class sayHelloResponse.class
18
設定ファイル web.xml サーブレットの実装クラス名 セッションの管理など sun-jaxws.xml サービスの実装クラス名
エンドポイントのパターン
19
War アーカイブの生成 WEB-INF – 設定ファイル WEB-INF – classes – クラス群
jar cvf HelloService.war WEB-INF デプロイ サーバの決められた場所にコピー AppServer/domains/domain1/autodeploy
20
Webサービスの確認 管理画面 http://localhost:4848/ から ブラウザで見る
21
クライアントプログラムの作成(1) 自動生成ツール wsimport wsimport HelloService.wsdl
Hello.class, HelloService.class, ObjectFactory.class SayHello.class, SayHelloResponse.class
22
クライアントプログラムの作成(2) public class HelloClient {
public static void main ( String[] args ) { Hello port = new HelloService().getHelloPort(); String message =port.sayHello( "Tatsuo" ); System.out.printf ( message );
23
作成したプログラムの実行 javac でコンパイル javac hello\HelloClient.java java で実行
java hello.HelloClient
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.