Webサービスの処理を記述したWebサービス実装クラスを作成します。ここでは,受け取った要求メッセージの内容を計算して,応答メッセージを返すWebサービス実装クラスを作成します。
SOAP 1.1の場合のWebサービス実装クラスの作成例を次に示します。作成したAddNumbersImpl.javaは,UTF-8形式でc:¥temp¥jaxws¥works¥annotations¥server¥src¥com¥sample¥ディレクトリに保存します。
package com.sample;
@javax.jws.WebService(name = "TestJaxWs",
targetNamespace = "http://example.org/sample",
serviceName = "TestJaxWsService", portName = "testJaxWs")
@javax.xml.ws.BindingType(javax.xml.ws.soap.SOAPBinding.SOAP11HTTP_BINDING)
@javax.jws.soap.SOAPBinding(style = javax.jws.soap.SOAPBinding.Style.DOCUMENT, use = javax.jws.soap.SOAPBinding.Use.LITERAL)
public class AddNumbersImpl{
@javax.jws.WebMethod(operationName = "jaxWsTest1")
@javax.jws.WebResult(name = "return")
public int add( @javax.jws.WebParam(name="num1")int number1, @javax.jws.WebParam(name="num2")int number2 ) throws AddNumbersFault{
if( ( number1 < 0 ) || ( number2 < 0 ) ){
throw new AddNumbersFault( "Negative number cannot be added!",
"Numbers: " + number1 + ", " + number2 );
}
return number1 + number2;
}
} |
また,com.sample.AddNumbersImplでスローしている例外クラスcom.sample.AddNumbersFaultを作成します。通常,例外クラスの作成は任意ですが,ここでは例外クラスを作成します。
例外クラスの作成例を次に示します。作成したAddNumbersFault.javaは,UTF-8形式で,c:¥temp¥jaxws¥works¥annotations¥server¥src¥com¥sample¥ディレクトリに保存します。
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;
}
} |
SOAP 1.2の場合のWebサービス実装クラスの作成例を次に示します。
package com.sample;
@javax.jws.WebService(name = "TestJaxWs",
targetNamespace = "http://example.org/sample",
serviceName = "TestJaxWsService", portName = "testJaxWs")
@javax.xml.ws.BindingType(javax.xml.ws.soap.SOAPBinding.SOAP12HTTP_BINDING)
@javax.jws.soap.SOAPBinding(style = javax.jws.soap.SOAPBinding.Style.DOCUMENT, use = javax.jws.soap.SOAPBinding.Use.LITERAL)
public class AddNumbersImpl{
@javax.jws.WebMethod(operationName = "jaxWsTest1")
@javax.jws.WebResult(name = "return")
public int add( @javax.jws.WebParam(name="num1")int number1, @javax.jws.WebParam(name="num2")int number2 ) throws AddNumbersFault{
if( ( number1 < 0 ) || ( number2 < 0 ) ){
throw new AddNumbersFault( "Negative number cannot be added!",
"Numbers: " + number1 + ", " + number2 );
}
return number1 + number2;
}
} |