Hitachi

Cosminexus V11 アプリケーションサーバ SOAPアプリケーション開発の手引


4.1.8 クライアント側の処理を実装する

SOAPサービスを利用するクライアント側の処理を実装します。クライアント側の処理では,生成されたスタブのうち,UserInfoServiceLocator.javaおよびUserInfo.javaを利用します。スタブの内容および実装方法については,「3.7.1 スタブの使用」を参照してください。

ここでは,クライアント側の処理の実装例として,社員番号を入力とし,結果を標準出力に出す場合の例を示します。

package localhost;
 
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import com.cosminexus.cws.management.*;
 
public class RPCSampleClient extends HttpServlet
{
    private static final String CONTENT_TYPE = "text/html; charset=Shift_JIS";
 
    // クライアント識別子
    private ClientID cltID = null;
    public void init() throws ServletException
    {
        // SOAPクライアントの開始
        cltID = Management.initializeClient();
    }
 
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
    {
        // クライアント識別子と実行スレッドを関連づける
        Management.connectClientIDtoCurrentThread(cltID);
 
       // ブラウザからパラメタの取得
         String strUserNo = request.getParameter("UserNo");
 
        if (strUserNo == null) {
            strUserNo = "";
        }
 
        UserInfo ui = null;
        UserData ud = null;
        UserInfoServiceLocator uis = new UserInfoServiceLocator();
        try
        {
            ui = uis.getUserInfo();
        }
        catch (javax.xml.rpc.ServiceException e)
        {
            // エラー処理を記述
        }
 
        try
        {
            ud = ui.getUserData(strUserNo);
        }
        catch (java.rmi.RemoteException e)
        {
            // エラー処理を記述
        }
 
        response.setContentType(CONTENT_TYPE);
        PrintWriter out = response.getWriter();
        // ブラウザに表示する内容を設定
 
        // クライアント識別子と実行スレッドの関連づけを解除する
        Management.disconnectClientIDtoCurrentThread(cltID);
    }
 
    public void destroy()
    {
        // SOAPクライアントの終了
        Management.finalizeClient(cltID);
    }
}