Hitachi

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


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

実装用の新規クラスを作成し,クライアント側の処理を実装します。次に,クライアント側の処理の実装例を示します。

package userinfo;
 
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
    {
        cltID = Management.initializeClient();
    }
 
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
    {
        // クライアントIDとスレッドの関連づけを行なう
        Management.connectClientIDtoCurrentThread(cltID);
 
        // ブラウザからパラメタの取得
        String strUserNo = request.getParameter("UserNo");
 
        if (strUserNo == null) {
            strUserNo = "";
        }
 
        SLBUserInfo ui = null;
        UserData ud = null;
 
        SLBUserInfoServiceLocator uis = new SLBUserInfoServiceLocator();
 
        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();
        // ブラウザに表示する内容を設定
 
        try
        {
            //EJBオブジェクトの削除
            ui.remove();
        }
        catch (java.rmi.RemoteException e)
        {
            // エラー処理を記述
        }
        // クライアントとスレッドの関連づけを解除する
        Management.disconnectClientIDtoCurrentThread(cltID);
    }
 
    public void destroy()
    {
        Management.finalizeClient(cltID);
    }
}
注※

ui.remove(EJBオブジェクトの削除)の呼び出し処理は,DeployScopeが「Session」のSOAPサービスを呼び出すクライアントの,セッションを終了したい個所に実装してください。