実装用の新規クラスを作成し,クライアント側の処理を実装します。次に,クライアント側の処理の実装例を示します。
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);
}
}