Hitachi

Cosminexus V11 アプリケーションサーバ Webサービス開発ガイド


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

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;
    }
 
}