COBOL2002 Cosminexus連携機能ガイド
前述のJavaBean版と同じです。「付録G.1 JavaBean版」を参照してください。
package testejb;
// import定義
import javax.servlet.*;
import javax.servlet.http.*;
import javax.naming.*;
import javax.rmi.*;
import java.io.*;
import java.util.*;
import javax.transaction.UserTransaction;
import javax.ejb.CreateException;
import java.rmi.*;
import java.lang.RuntimeException.*;
import jp.co.hitachi_sk.j2cb.*;
//* EJB パッケージ名 *
import testejb.*;
public class SearchEJBServlet extends HttpServlet {
// *******************************
// * ホームインタフェース定義
// *******************************
private static final long serialVersionUID = 0L;
SearchEJBHome homeobj;
String wkstr;
boolean flgget=true;
ServletContext gservCont=null;
UserTransaction tx;
public void init(ServletConfig config) throws ServletException {
Context context;
try {
gservCont=config.getServletContext();
java.util.Properties prop=new java.util.Properties();
prop.setProperty(javax.naming.Context.INITIAL_CONTEXT_FACTORY,
"com.hitachi.software.ejb.jndi.InsContextFactory");
prop.setProperty(javax.naming.Context.OBJECT_FACTORIES,
"com.hitachi.software.ejb.jndi.InsNamingFactory");
prop.setProperty(javax.naming.Context.STATE_FACTORIES,
"com.hitachi.software.ejb.jndi.InsNamingFactory");
prop.setProperty(javax.naming.Context.PROVIDER_URL, "iiopname://localhost:900");
javax.naming.Context ctx=new javax.naming.InitialContext(prop);
// *************************************************
// * ctx.lookup("HITACHI_EJB//SERVERS//**1**//EJB//**2**//**3**.**4**");
// * **1** : サーバ名(servername)
// * **2** : アプリケーション名
// * **3** : リモート名
// * **4** : ホーム名
// *
// * homeobj=(**5**)PortableRemoteObject.narrow(objref,**5**.class);
// * **5** : ホーム名
// *
// *************************************************
// * 注意 : lookupの**1**(servername)は環境に合わせて変更してください
// *************************************************
Object objref =
ctx.lookup("HITACHI_EJB/SERVERS/servername/EJB/SearchEJBBean/SearchEJB.SearchEJBHome");
homeobj=(SearchEJBHome)PortableRemoteObject.narrow(objref,SearchEJBHome.class);
} catch(Exception e) {
e.printStackTrace();
return;
}
}
// Post の処理
public void doPost(HttpServletRequest req,
HttpServletResponse res)
throws ServletException, IOException {
flgget=false;
doGetPost(req,res);
}
// Get の処理
public void doGet(HttpServletRequest req,
HttpServletResponse res)
throws ServletException, IOException {
flgget=true;
doGetPost(req,res);
}
// GetPost の処理
public void doGetPost(HttpServletRequest req,
HttpServletResponse res)
throws ServletException, IOException {
// ********************************
// * リモートインタフェース定義
// ********************************
SearchEJB remoteobj;
// Htmからのデータ取得
String number="";
try {
number=req.getParameter("Number");
} catch (Exception e) {
System.out.println("htm入力データエラー発生 :");
e.printStackTrace();
return;
}
// ****************************************************
// * 文字エンコーディングの設定とそのライタの取得
// ****************************************************
res.setContentType("text/html; charset=shift_jis");
PrintWriter out=res.getWriter();
// HTMLを書き出す
out.println("<html><head>");
out.println("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-2022-JP\">");
out.println("<title>Test- (EJB呼び出し)-</title></head>");
out.println("<body><center><h1>EJB動作確認</h1><br>");
// EJBをCreate
try {
remoteobj=homeobj.create();
} catch (Exception e) {
J2CBErrorUtil wkobj=new J2CBErrorUtil(e.getMessage());
out.println("Create時エラー発生 :");
out.println("<p>getEJBCblErrorCode=" + wkobj.getEJBCblErrorCode() + "</p>");
out.println("<p>getEJBCblMessageID=" + wkobj.getEJBCblMessageID() + "</p>");
out.println("<p>getEJBDetailMessage=" + wkobj.getEJBDetailMessage() + "</p>");
out.println("<p>getEJBErrorCode=" + wkobj.getEJBErrorCode() + "</p>");
out.println("<p>getEJBMessage=" + wkobj.getEJBMessage() + "</p>");
out.println("<p>getEJBName=" + wkobj.getEJBName() + "</p>");
e.printStackTrace();
return;
}
try {
// Beanにパラメタを設定
try {
remoteobj.setP_number(new Integer(number));
} catch (NumberFormatException e) {
out.println("入力データエラー発生 :" + e.getMessage());
e.printStackTrace();
return;
}
remoteobj.setP_name("");
remoteobj.setP_address("");
remoteobj.setP_gif("");
} catch(Exception e) {
out.println("setBean エラー発生");
out.println("Error MSG : " + e.getMessage());
return;
}
// COBOLプログラムの呼び出し
try {
remoteobj.callCOBOL();
} catch (Exception e) {
out.println("COBOLプログラム呼び出し時 エラー発生 :");
J2CBErrorUtil wkobj=new J2CBErrorUtil(e.getMessage());
out.println("<p>getEJBCblErrorCode=" + wkobj.getEJBCblErrorCode() + "</p>");
out.println("<p>getEJBCblMessageID=" + wkobj.getEJBCblMessageID() + "</p>");
out.println("<p>getEJBDetailMessage=" + wkobj.getEJBDetailMessage() + "</p>");
out.println("<p>getEJBErrorCode=" + wkobj.getEJBErrorCode() + "</p>");
out.println("<p>getEJBMessage=" + wkobj.getEJBMessage() + "</p>");
out.println("<p>getEJBName=" + wkobj.getEJBName() + "</p>");
e.printStackTrace();
return;
}
// データの出力
try {
out.println("<center>Result of Search.");
out.println("<table border='1'>");
out.println("<tr><td colspan='2' align='center'>");
out.println( remoteobj.getP_number() );
out.println("</td><tr><td>Name</td><td>");
out.println( remoteobj.getP_name() );
out.println("</td><tr><td>Address</td><td>");
out.println( remoteobj.getP_address() );
out.println("<tr><td colspan='2' align='center'><img src='../servlet");
out.println(remoteobj.getP_gif());
out.println("'>");
out.println("<tr>");
out.println("</table>");
out.println("</center>");
} catch(Exception e) {
out.println("getBean時 エラー発生");
J2CBErrorUtil wkobj=new J2CBErrorUtil(e.getMessage());
out.println("<p>getEJBCblErrorCode=" + wkobj.getEJBCblErrorCode() + "</p>");
out.println("<p>getEJBCblMessageID=" + wkobj.getEJBCblMessageID() + "</p>");
out.println("<p>getEJBDetailMessage=" + wkobj.getEJBDetailMessage() + "</p>");
out.println("<p>getEJBErrorCode=" + wkobj.getEJBErrorCode() + "</p>");
out.println("<p>getEJBMessage=" + wkobj.getEJBMessage() + "</p>");
out.println("<p>getEJBName=" + wkobj.getEJBName() + "</p>");
e.printStackTrace();
return;
}
out.println("</body></html>");
out.close();
}
}
<HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=shift_jis"> <TITLE> SearchEJB </TITLE> </HEAD> <BODY> <h3><center>COBOL adapter for Cosminexusのサンプル<BR>(EJB版)</center></h3> <hr><br> <center>100001 と 100002が登録されています。 <FORM action=/servlet/testejb.SearchEJBServlet method="POST"> Number:<input type="text" name="Number" value="100001"> <BR><BR> Submit を押すと servlet SearchEJBServlet を実行 <BR><BR><input type=submit value="Submit"></form> </center> </BODY> </HTML>
All Rights Reserved. Copyright (C) 2003, 2016, Hitachi, Ltd.