Webサービスの処理を記述したWebサービス実装クラスを作成します。ここでは,受け取った要求メッセージの内容を計算して,応答メッセージを返すWebサービス実装クラスを作成します。
Webサービス実装クラスの作成例を次に示します。
package com.sample;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.xml.ws.Action;
import javax.xml.ws.FaultAction;
@WebService(name = "AddNumbers", targetNamespace = "http://sample.com/")
@SOAPBinding(style=SOAPBinding.Style.DOCUMENT, use=SOAPBinding.Use.LITERAL, parameterStyle=SOAPBinding.ParameterStyle.WRAPPED)
interface AddNumbers {
@Action(input = "http://sample.com/input",
output = "http://sample.com/output")
public int add(int number1, int number2) throws AddNumbersFault;
public int add2(int number1, int number2) throws AddNumbersFault;
@Action(input = "http://sample.com/input3",
output = "http://sample.com/output3",
fault = {@FaultAction(className = AddNumbersFault.class, value = "http://sample.com/fault3")})
public int add3(int number1, int number2) throws AddNumbersFault;
} |
作成したAddNumbers.javaは,UTF-8形式でc:¥temp¥jaxws¥works¥addressing¥server¥src¥com¥sample¥ディレクトリに保存します。
次に,SEIを実装したWebサービスの本体を作成します。ここでは,受け取った要求メッセージの内容を計算して応答メッセージとして返すWebサービス実装クラスcom.sample.AddNumbersImplを作成します。
Webサービスの本体の作成例を次に示します。
package com.sample;
import javax.jws.WebService;
import javax.xml.ws.soap.Addressing;
@Addressing
@WebService(endpointInterface = "com.sample.AddNumbers")
public class AddNumbersImpl implements AddNumbers {
public int add(int number1, int number2) throws AddNumbersFault {
return impl(number1, number2);
}
public int add2(int number1, int number2) throws AddNumbersFault {
return impl(number1, number2);
}
public int add3(int number1, int number2) throws AddNumbersFault {
return impl(number1, number2);
}
int impl(int number1, int number2) throws AddNumbersFault {
if (number1 < 0 || number2 < 0) {
throw new AddNumbersFault("Negative numbers can't be added!",
"Numbers: " + number1 + ", " + number2);
}
return number1 + number2;
}
} |
作成したAddNumbersImpl.javaは,UTF-8形式で,c:¥temp¥jaxws¥works¥addressing¥server¥src¥com¥sample¥ディレクトリに保存します。
また,com.sample.AddNumbersImplクラスでスローしている例外クラスcom.sample.AddNumbersFaultを作成します。
例外クラスの作成例を次に示します。
package com.sample;
public class AddNumbersFault extends Exception {
String detail;
public AddNumbersFault(String message, String detail) {
super(message);
this.detail = detail;
}
public String getDetail() {
return detail;
}
} |
作成したAddNumbersFault.javaは,UTF-8形式でc:¥temp¥jaxws¥works¥addressing¥server¥src¥com¥sample¥ディレクトリに保存します。