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);
}
}