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サービスを呼び出すクライアントの,セッションを終了したい個所に実装してください。