Webサービスの処理を記述したWebサービス実装クラスを作成します。ここでは,受け取った要求メッセージの内容を計算して,応答メッセージを返すWebサービス実装クラスを作成します。
Webサービス実装クラスの作成例を次に示します。
package com.sample;
import javax.activation.DataHandler;
import javax.jws.WebService;
import javax.xml.ws.soap.MTOM;
import javax.xml.bind.annotation.XmlMimeType;
import com.sun.xml.ws.developer.StreamingAttachment;
import com.sun.xml.ws.developer.StreamingDataHandler;
@MTOM
@StreamingAttachment(dir="C:/TMP", parseEagerly=true, memoryThreshold=50000L)
@WebService(serviceName="UserInfoService",targetNamespace="http://sample.com")
public class UserInfoImpl {
public UserData getUserData(String in0, @XmlMimeType("application/octet-stream")DataHandler in1)
throws UserInfoException {
if (in1 != null) {
if (in1 instanceof StreamingDataHandler) {
StreamingDataHandler sdh = null;
try {
//社員情報への顔写真の登録処理
sdh = (StreamingDataHandler)in1;
・・・・
} catch(Exception e) {
throw new UserInfoException("Exception occurred.", e.getMessage());
} finally {
try {
if (sdh != null) {
//データのクローズ
sdh.close();
}
} catch(Exception ex) {
・・・・
}
}
}
}
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¥streaming¥server¥src¥com¥sample¥ディレクトリに保存します。
また,com.sample.UserInfoImplで使用しているユーザ定義型クラスcom.sample.UserDataを作成します。通常,ユーザ定義型クラスの作成は任意ですが,ここではユーザ定義型クラスを作成します。
ユーザ定義型クラスの作成例を次に示します。
package com.sample;
import java.lang.String;
public class UserData {
private String message;
private String name;
private String section;
public UserData() {
}
public String getMessage() {
return this.message;
}
public void setMessage(String message) {
this.message = message;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public String getSection() {
return this.section;
}
public void setSection(String section) {
this.section = section;
}
} |
作成したUserData.javaは,UTF-8形式で,c:¥temp¥jaxws¥works¥streaming¥server¥src¥com¥sample¥ディレクトリに保存します。
またcom.sample.UserInfoImplでスローしている例外クラスcom.sample.UserInfoExceptionを作成します。通常,例外クラスの作成は任意ですが,ここでは例外クラスを作成します。
例外クラスの作成例を次に示します。
package com.sample;
import java.lang.Exception;
import java.lang.String;
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¥streaming¥server¥src¥com¥sample¥ディレクトリに保存します。