31.3.1 Webサービス実装クラスを作成する

Webサービスの処理を記述したWebサービス実装クラスを作成します。ここでは,受け取った要求メッセージの内容を計算して,応答メッセージを返すWebサービス実装クラスを作成します。

Webサービス実装クラスの作成例を次に示します。

package com.sample;

import java.awt.Image;
import javax.jws.WebService;
import javax.xml.ws.soap.MTOM;
import javax.xml.bind.annotation.XmlMimeType;

@MTOM
@WebService(serviceName="UserInfoService",targetNamespace="http://sample.com")
public class UserInfoImpl {

   public UserData getUserData(String in0, @XmlMimeType("image/png")Image 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¥mtom¥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¥mtom¥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¥mtom¥server¥src¥com¥sample¥ディレクトリに保存します。