付録H.2 TP1/Client/J版
(1) COBOL引数の登録集原文とCOBOLプログラム例
付録H.1のTP1/Client/PおよびTP1/Client/W版と同じです。「付録H.1 TP1/Client/PおよびTP1/Client/W版」をご覧ください。
(2) Java UAP(Servlet)例
(a) Rap Server使用時の概要
:
import jp.co.hitachi_sk.j2cb.*; // パッケージのインポート
import JP.co.Hitachi.soft.OpenTP1.*; //
:
TP1Client tp1 = new TP1Client(); // インスタンス生成
生成クラス名 cls = new 生成クラス名(); //
:
tp1.openConnection("server",12000); // RAPサーバに接続
:
cls.setData1I(""); // データの設定
:
cls.call(tp1,"group","service",tp1.DCNOFLAGS);
// RPC実行
:
String str = cls.getData1O(); // データの取得
:
tp1.closeConnection(); // サーバとの接続解消
:(b) scdサーバ使用時の概要(スケジューラダイレクト機能)
:
import jp.co.hitachi_sk.j2cb.*; // パッケージのインポート
import JP.co.Hitachi.soft.OpenTP1.*; //
:
TP1Client tp1 = new TP1Client(); // インスタンス生成
生成クラス名 cls = new 生成クラス名(); //
:
tp1.rpcOpen(); // RPC環境の初期化
:
cls.setData1I(""); // データの設定
:
cls.call(tp1,"group","service",tp1.DCNOFLAGS);
// RPC実行
:
String str = cls.getData1O(); // データの取得
:
tp1.rpcClose(); // RPC環境の開放
:(c) servlet作成例
package test;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.beans.Beans;
import jp.co.hitachi_sk.j2cb.*;
import JP.co.Hitachi.soft.OpenTP1.*;
//数字項目(外部10進項目,内部10進項目および小数けたを含む2進項目)を
//使用する場合は,以下のようにjava.math.BigDecimalをimportしてください。
//import java.math.BigDecimal;
public class SearchTP1Servlet extends HttpServlet {
private static final long serialVersionUID = 0L;
ServletContext c;
//グローバル変数の初期化
public void init(ServletConfig config) throws ServletException {
super.init(config);
c = config.getServletContext();
}
//HTTP Get リクエストの処理
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
String number = "";
String server = "";
String[] host = new String[1];
String group = "";
String service = "";
String wkport = "";
int port = 10020;
try {
number = req.getParameter("Number");
server = req.getParameter("SERVER");
host[0] = req.getParameter("HOST");
group = req.getParameter("GROUP");
service = req.getParameter("SERVICE");
wkport = req.getParameter("PORT");
} catch (Exception e) {
e.printStackTrace();
}
port = Integer.parseInt(wkport);
res.setContentType("text/html; charset=shift_jis");
//Beanのインスタンス生成
SearchTP1 bean = new SearchTP1();
TP1Client tp1 = new TP1Client();
try {
int[] idArr = new int[1];
/* Beanにパラメタを設定 */
bean.setP_numberI(new Integer(number));
bean.setP_nameI("");
bean.setP_addressI("");
bean.setP_gifI("");
try {
if (server.equals("rap") ) {
//rapサーバ 接続確立
tp1.openConnection(host[0],port);
} else {
//scdサーバ 接続確立
//任意の名称の定義ファイルをフルパスで指定した場合
//tp1.rpcOpen("C:\\OpenTP1CltJ\\cltjenv.ini");
/* ファイルの定義内容
dcscddirect=Y
dchost=OpenTP1のホスト名
dcscdport=10010(rapリスナーのポート番号等)
*/
//システムプロパティで指定している場合
tp1.rpcOpen();
}
} catch(TP1ClientException ex) {
System.out.println("open failed : " + ex.toString());
ex.printStackTrace();
return;
}
try {
//SPPを呼び出します
bean.call(tp1,group,service,TP1Client.DCNOFLAGS);
if (server.equals("rap") ) {
//rapサーバ 接続開放
tp1.closeConnection();
} else {
//scdサーバ 接続開放
tp1.rpcClose();
}
} catch(Exception e2) {
e2.printStackTrace();
System.out.println("error" + e2.toString());
return;
}
//JSP中で"bean"という名称でプロパティを参照できるようにする。
req.setAttribute("bean",bean);
//ここでJSPを呼びます
javax.servlet.RequestDispatcher rd =
c.getRequestDispatcher("/SearchTP1.jsp");
rd.forward(req, res);
} catch (Exception e) {
System.out.println("test failed ");
e.printStackTrace();
return;
}
}
//HTTP Post リクエストの処理
public void doPost(HttpServletRequest request,
HttpServletResponse response) throws
ServletException, IOException {
doGet(request, response);
}
}(3) HTMLの作成例
<HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=shift_jis"> <TITLE> SearchTP1 </TITLE> </HEAD> <BODY> <h3> <center>TP1/COBOL adapter for Cosminexus のサンプル</center> <center>(TP1/Client/J対応版)</center> </h3> <hr> <center> <FORM action=/servlet/test.SearchTP1Servlet method="POST"> 接続サーバ選択 <SELECT name="SERVER"> <OPTION value="rap" SELECTED > rapサーバ </OPTION> <OPTION value="scd" > scdサーバ </OPTION> </SELECT><br> <hr> <table border="1"> <tr><td colspan="2" align="center"> <center>設定</center> </td><tr><td>OpenTP1ホスト名 (*1)</td><td> <input type="text" name="HOST" value="servername"> </td><tr><td>ポート番号 (*1)</td><td> <input type="text" name="PORT" value="10020"> </td><tr><td>サービスグループ名</td><td> <input type="text" name="GROUP" value="SAMPLE"> </td><tr><td>サービス名</td><td> <input type="text" name="SERVICE" value="SEARCHTP1"> </td></table> <br> (*1):rapサーバ接続時に必須 <hr> <br> 100001 と 100002が登録されています。<br> Number:<input type="text" name="Number" value="100001"> <BR><BR> Submit を押すと servlet SearchTP1Servlet を実行 <BR><BR><input type=submit value="Submit"></form> </center> </BODY> </HTML>
(4) JSPの作成例
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<%@ page contentType="text/html; charset=shift_jis"
import="jp.co.hitachi_sk.j2cb.J2CBException" %>
<jsp:useBean id="bean" scope="request" class="test.SearchTP1" />
<html>
<center>Result of Search.
<table border="1">
<tr><td colspan="2" align="center">
<jsp:getProperty name="bean" property="p_numberO" />
</td><tr><td>Name</td><td>
<jsp:getProperty name="bean" property="p_nameO" />
</td><tr><td>Address</td><td>
<jsp:getProperty name="bean" property="p_addressO" />
<tr><td colspan="2" align="center">
<img src="../servlet<jsp:getProperty name="bean" property="p_gifO" />">
</td></table>
</center>
</html>