Hitachi

TP1/COBOL adapter for Cosminexus ユーザーズガイド


付録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>