■httpの構成と起動
i−webを使用するのに必要なhttp環境の設定をします。
- http構成ファイルを変更する
WRKHTTPCFGコマンドし使用します。
(このコマンドは、使い勝手が結構悪いので、QUSRSYS/QATMHTTPCという
物理ファイルを直接変更してもOKです。)#*** HOSTNAME DIRECTIVES *** HostName www.xxxxx.co.jp #*** CCSID DIRECTIVES *** DefaultFsCCSID 5035 DefaultNETCCSID 0932 #*** PORT DIRECTIVES *** Port 80 #*** METHOD DIRECTIVES *** Enable GET Enable HEAD Enable POST #*** MAPPING DIRECTIVES *** Exec /cgi-bin/* /QSYS.LIB/CGILIB.LIB/* Exec /iweb-xlr/* /QSYS.LIB/IWXLR.LIB/* Exec /iweb-rpg/* /QSYS.LIB/@WEB.LIB/* Map /cgi-htm/* /QSYS.LIB/CGITEMP.LIB/* # Pass /* /HTML/* Pass /HTML/*【MAPPING DIRECTIVEについて】
ここでは、外部(URL)で指定するPathと、
実際のAS400内部のPath構造との関係を定義します。
EXEC DIRECTIVEでは、
Exec /cgi-bin/* /QSYS.LIB/CGILIB.LIB/* ↑
外部名↑
内部のPath構造
ブラウザーでの指定 http://xxx.xxxx.co.jp/cgi-bin/PGM010.PGM ↓ AS400内でのPath QSYS.LIB/CGILIB.LIB/PGM010.PGM
CGILIB/PGM010が実行されるEXEC DIRECTIVE は、Webユーザーに対して、ライブラリー構造を
隠す働きをしています。
MAP DIRECTIVEも同様です。
MAP DIRECTIVEとEXEC DIRECTIVEとの違いは、
実行プログラムはEXEC DIRECTIVEで指定したライブラリーに
入っていなければなりません
PASS DIRECTIVEは、http経由でアクセスされるPathを指定します。
指定のないPathはアクセスできません。- httpサーバーを再起動する
STRTCPSVR SERVER(*HTTP) RESTART(*YES) HTTPSVR(DEFAULT)
起動されると、QHTTPSVRというサブシステムが立ち上がります。
※HTTPサーバーをApacheにて設定する場合は、こちらの資料をご覧下さい。
Apache設定資料
■開発環境の作成
- ソースファイルの作成
ソースファイルは、CCSID=5035で作成してください。
また、長いjavascriptを書くことが予想されるので、レコード長も長めにセットします。
CRTSRCPF FILE(XXXX) RCDLEN(240) IGCDTA(*YES) CCSID(5035)
- ジョブCCSIDの設定
Webプログラムの開発時は、ジョブのCCSIDを5035に設定してください。
CHGJOB CCSID(5035)
■エミュレーターの設定変更
5250エミュレーターもCCSID=5035に対応するように変更します。
これにより、カタカナが5035対応で入力でき、英字小文字が入力出来るようになります。
- 5250エミュレーターの構成を『通信→構成→セッションパラメーター』と選択
- ホストコードページを939(日本語英数小文字拡張)に変更
- コードページの変更は、CTRL+F3で行うことが出来ます。
コマンド入力画面で、機能キーの説明表示が『F4 ポワ]ポn』のように表示されていれば、
939で設定されている状態です。
■CCSIDへの配慮
Webプログラムの開発で十分に注意しなければならないのが、CCSIDです。
誤ったCCSIDの環境の中でプログラムを作成すると、『文字化け』頻発します。
CCSIDに関しては、こちらを参照してください。
日本語のCCSIDは、『5026』と『5035』がありますが、インターネットでは、『5035』が主体です。
ところが、AS400ユーザーでは『5026』が主体です。
このため、そのままなんの配慮もなく開発したプログラムは、ほとんどの場合『文字化け』を起こします。
『文字化け』に関して、次の考慮への留意が必要です。
- ソースファイルのCCSIDが5035になっている。
- ジョブのCCSIDが『5035』になっている
- DBのCCSIDが『5026』(←キチンと)または、『5035』になっている
DBのCCSIDが『65535』になっていると、要注意です。- 5250エミュレーターのコードページが『939』になっている
■プログラムの起動
Webプログラムの起動は、ブラウザーからプログラムのURLを指定することにより行われます。
URLは、『AS400のIpアドレス/プログラムの存在するライブラリーを示すパス/プログラム名』となります。
上の例では、CGILIBの中のPGM01を起動します。CGILIBに対して、HTTP構成でEXECディレクティブが指定されている必要があります。
ただ、このように直接ライブラリー名で参照すると、AS400の中のライブラリー構造が判ってしまうことになります。
このため、通常は『QSYS.LIB/CGILIB.LIB』というパスに対して別の名前(エイリアスという)をつけて、使用します。
上の例では、『cgi-bin』といいエイリアスを使用しています。
■デバッグの方法
Webプログラムは、サブシステムQHHTSVR下で稼動します。
このため、通常の5250ジョブのような方法ではデバッグできません。
詳しくは、こちらをご覧ください。