29.3.1 Webサービス実装クラスを作成する
Webサービスの処理を記述したWebサービス実装クラスを作成します。ここでは,受け取った要求メッセージの内容を計算して,応答メッセージを返すWebサービス実装クラスを作成します。
Webサービス実装クラスの作成例を次に示します。
package com.sample; import javax.jws.WebService; import javax.jws.soap.SOAPBinding; import javax.xml.bind.annotation.XmlAttachmentRef; import javax.activation.DataHandler; @javax.jws.WebService(serviceName="UserInfoService",targetNamespace="http://sample.com") public class UserInfoImpl{ public UserData getUserData( String in0, @XmlAttachmentRef javax.activation.DataHandler in1 ) throws UserInfoException{ //社員情報への顔写真の登録処理 ・・・・ UserData userdata = new UserData(); //登録した社員の名前と所属を設定 if ( in0.equals("1") ) { userdata.setName("Sato Taro"); userdata.setSection("The personnel section"); } if ( ・・・・) { ・・・・・ } ・・・・ //登録確認メッセージを設定 if ( in1 == null ) { userdata.setMessage("Failure(no image)."); } else { userdata.setMessage("Success."); } return userdata; } }
作成したUserInfoImpl.javaは,UTF-8形式でc:\temp\jaxws\works\attachments\server\src\com\sample\ディレクトリに保存します。
また,com.sample.UserInfoImplで使用しているユーザ定義型クラスcom.sample.UserDataを作成します。通常,ユーザ定義型クラスの作成は任意ですが,ここではユーザ定義型クラスを作成します。
ユーザ定義型クラスの作成例を次に示します。
package com.sample; public class UserData{ private java.lang.String message; private java.lang.String name; private java.lang.String section; public UserData(){ } public java.lang.String getMessage() { return this.message; } public void setMessage(java.lang.String message) { this.message = message; } public java.lang.String getName() { return this.name; } public void setName(java.lang.String name) { this.name = name; } public java.lang.String getSection() { return this.section; } public void setSection(java.lang.String section) { this.section = section; } }
作成したUserInfoImpl.javaは,UTF-8形式で,c:\temp\jaxws\works\attachments\server\src\com\sample\ディレクトリに保存します。
またcom.sample.UserInfoImplでスローしている例外クラスcom.sample.UserInfoExceptionを作成します。通常,例外クラスの作成は任意ですが,ここでは例外クラスを作成します。
例外クラスの作成例を次に示します。
package com.sample; public class UserInfoException extends Exception { String detail; public UserInfoException (String message, String detail) { super (message); this.detail = detail; } public String getDetail () { return detail; } }
作成したUserInfoException.javaは,UTF-8形式でc:\temp\jaxws\works\attachments\server\src\com\sample\ディレクトリに保存します。