4.4.8 クライアント側の処理を実装する
SOAPサービスを利用するクライアント側の処理を実装します。
ここでは,クライアント側の処理の実装例として,社員番号と顔写真を入力とし,結果を標準出力に出す場合の例を示します。
package localhost; import javax.activation.DataHandler; import javax.activation.FileDataSource; import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.util.*; import com.cosminexus.cws.management.*; public class RPCAttachmentsSampleClient 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 { Management.connectClientIDtoCurrentThread(cltID); // ブラウザからパラメタの取得 // 社員番号の取得 String strUserNo = request.getParameter("UserNo"); if (strUserNo == null) { strUserNo = ""; } String strContextPath = (String)getServletConfig().getServletContext().getRealPath("/"); String filepath = strContextPath + "attachment.txt"; File imagefile = new File(filepath); FileDataSource fdSource = new FileDataSource(imagefile); DataHandler dhandler = new DataHandler(fdSource); 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, dhandler); } catch (java.rmi.RemoteException e) { // エラー処理を記述 } response.setContentType(CONTENT_TYPE); PrintWriter out = response.getWriter(); // ブラウザに表示する内容を設定 Management.disconnectClientIDtoCurrentThread(cltID); } public void destroy() { Management.finalizeClient(cltID); } }