| 2. 開発環境 |
WebAP JSP Developer の注意制限事項について説明します。
| 2.1 マッピング |
NAME属性値のないTABLEタグに対して、自動的に付加するNAME属性値は「JSP_TABLEn」(nはHTMLファイル中のテーブルの番号)となります。バージョン2.12以前のWebAP JSP Developer が生成する「JSP_TABLE:n」とは異なります。
WebAP JSPでは動作しないが、WebAP JSP Developer の引数設定画面でマッピングできる引数として表示される場合があります。
以下に例を示します。
多次元配列
実際に使用できる引数の型は「WebOTX WebAP JSPのIDL対応表」に記載してあるもののみです。
複数のメソッドを割り当てているフェーズの場合は、出力引数マッピングダイアログにおいて、他のメソッドでマッピング済みのHTMLタグが候補として現れる場合があります。この場合は、同一の HTML タグに複数の出力引数をマッピングしないでください。
出力引数・戻り値のマッピング情報はメソッドごとに設定されます。一つのメソッドを複数回設定した場合、出力引数・戻り値のマッピング情報は共有されます。 また、一つのメソッドを複数回設定してあり、かつ出力引数・戻り値マッピングが設定されている状態にあるとします。この状態で、一方のメソッドをフェーズから削除すると、他方のメソッドの出力引数・戻り値のマッピング情報はすべて削除されます。
| 2.2 フェーズ設定 |
「フェーズ設定」ダイアログでフェーズ設定を行った後、IDL(IF)ファイルやフェーズの出力用HTML(JSP)ファイルを更新した場合は、もう一度「フェーズ設定」ダイアログでフェーズ設定を行ってください。
フェーズ名を変更した場合は、名称変更したフェーズおよび関連するフェーズ(直前に実行するフェーズ、次に実行するフェーズ)のフェーズ情報も変更します。フェーズ設定画面でフェーズ情報の設定、割り当てているメソッドの引数マッピングを再度行ってください。
タイムアウトフェーズには、処理に長時間かかるようなメソッドは設定しないでください。処理時間の長いタイムアウトフェーズが実行されると、他のセッションのタイムアウトの処理が待ち合わされ、不要となったリソースの解放が遅れる原因となります。
| 2.3 MFDL |
WebAP JSP Developer でMFDL移行時に指定するコネクタ連携ファイルは、WebOTX バージョン3.2以降のCD-ROMに含まれるWebOTX Connector Developer(VISコネクタ) で作成したファイルを使用してください。
バージョン3.1.0.3aより前のWebOTX Connector Developer(VISコネクタ)で生成したコネクタ連携ファイルを、バージョン3.104A以降のWebAP JSP Developer で読み込むことはできません。
WebAP JSP Developer でMFDL移行して作成したWebアプリケーションは、バージョン3.1.0.3aより前のWebOTX Connector Developer(VISコネクタ)で、エラー発生時にメソッドの戻り値でエラー情報を返却するように指定して作成したコネクタAPと接続できません。
JSP開発ツールの「環境設定」画面の「MFDL(表示)」タブで「文字色を指定する」または「背景色を指定する」を選択して色選択ダイアログを開いたとき、選択していた色とは若干異なった色で表示されることがあります。
ブラウザのデフォルトのフォントでは、文字の位置がずれる場合があります。これを解消するためには、固定ピッチフォントで表示する必要があります。
Internet Explorerをご使用の場合は、JSP開発ツールの「環境設定」画面の「MFDL(表示)」タブで、「フォント名」に固定ピッチフォント名を指定してください。
Netscape Navigatorをご使用の場合は、ブラウザの「編集」−「設定」メニューで表示される「設定」画面で、「プロポーショナル フォント」に固定ピッチフォントのフォント名を指定してください。
ブラウザのデフォルトのフォントと異なるサイズのフォントをご使用になりたい場合は、以下のように指定してください。
Internet Explorerをご使用の場合は、JSP開発ツールの「環境設定」画面の「MFDL(表示)」タブでフォントサイズを指定してください。
Netscape Navigatorをご使用の場合は、ブラウザの「編集」−「設定」メニューで表示される「設定」画面で、「プロポーショナル フォント」の「サイズ」を変更してください。
WebブラウザとしてNetscape Navigator 4.5/4.7を使用する場合は、JSP開発ツールの「環境設定」画面の「MFDL(制御)」タブで「入力データのチェック」に「Webサーバ(フェーズ)で行う」を選択してください。「Webブラウザ(JavaScript)で行う」を選択した場合、以下の文字の文字種別を正しく判定できないため、送信できなかったり、チェックでエラーになるはずの文字をそのまま送信したりします。
MFDL移行で生成したJSPファイルをカスタマイズ(INPUTタグの追加など)した場合には、Enterキーでのフォーカス移動や入力データのチェックが正しく動作しない場合があります。
OLF/TP-UW通信を行うWebアプリケーションの場合は、空白文字削除機能は無効になります。
MFDL定義ファイルで入出力属性がINまたはIOとして定義されているフィールドで、NODISPの指定がある場合、変換するHTMLタグが論理定義のEDITの指定により異なります。
EDITにALPHA、NUMが指定されていれば、TYPE="password"のINPUTタグに変換します。
EDITにKANJI、MIXが指定されていれば、TYPE="text"のINPUTタグに変換します。
MFDLの論理定義でVALUESの指定を行っている場合、その指定可能な文字列中に、以下の文字が含まれていた場合、自動生成したJSPファイルのコンパイルに失敗します。
MFDL移行して作成するJSPファイルの文字コードは、SJISまたはMS932に設定してください。JDK1.4.1以上を使用する場合は、Windows-31Jに設定してください。JSPファイルの文字コードの設定は、JSP開発ツールの「トランザクション」−「プロパティ」メニューを選択して表示される「プロパティ設定」ダイアログで行ってください。
移行定義ファイル作成Excelファイル(MFDLConv.xls)はマクロを有効にして開いてください。
MFDLConv.xlsで作成した移行定義ファイルをMicrosoft(R) Excelで読み込んで保存しなおすと、データの形式が一部変わってしまうため、WebAP JSP Developerで読み込めなくなります。
移行定義ファイルを更新する場合は、MFDLConv.xlsで作成し直すか、テキストエディタで変更してください。
MFDLConv.xlsをMicrosoft(R) Excel 2000(以下Excelと記載) で使用する場合には、読み込む前に以下の設定を確認してください。
Excelのメニュー「ツール」−「マクロ」−「セキュリティ」で表示したダイアログでセキュリティレベルが「中」以下になっているか確認をしてください。「高」になっている場合にはマクロが動作できないので、「中」に変更してください。
実行時にエラーとなり、エラー内容が「クラス名クラスインスタンスの作成に失敗しました。」、エラー詳細のエラー情報が「クラス:[クラス名]はZIPファイル中に存在しません。」である場合、MFDL移行時の重ねの定義が不足している可能性があります。移行定義ファイルの定義を見直してください。
MFDL移行処理を行ってJSP生成後、MFDL移行処理でHTMLの生成を行うと、コンパイルを行うことは可能ですがコンパイルしたWebアプリケーションを実行することはできません。HTML生成を行った場合には、コンパイルする前にJSP生成を行ってください。
MFDL移行した画面をカスタマイズする場合に注意する点については、「移行画面のカスタマイズの注意点」を参照してください。
MFDLの定義情報の組み合わせによる制限事項については、「MFDLサポート機能一覧」を参照してください。
MFDL移行中に重ねあわせのエラーを検出した場合に表示されるエラーダイアログで、「はい」または「すべてはい」ボタンを選択すると、エラーが発生したあともソース生成は継続されます。ただし、ソースは不正状態になっているため、コンパイル/実行ができない場合があります。エラーの原因を修正後、エラーが発生しなくなったことを確認してから、コンパイル/実行を行ってください。
JSP開発ツールの「環境設定」画面の「JSP」タブの「キーワードチェック機能を使用する」を、「使用する(Form系タグ以外のフィールド)」または「使用する(すべてのフィールド)」に指定している場合、MFDL移行では、受信データだけでなく、MFDLのVALUECやVALUENCで指定する文字列中の特殊文字もキーワード変換します。また、「使用する(Form系タグ以外のフィールド)」を指定している場合のForm系タグでも、ダブルクォーテーション(")のみは、キーワード変換を行います。
| 2.4 フェーズの出力用HTMLファイルまたはJSPファイル |
「フェーズ設定」ダイアログの「HTML(JSP)」タブで、JSP開発ディレクトリ配下に自動生成したJSPファイルのパスを指定してフェーズの出力用HTML画面とした場合、次回のJSPファイルの生成時に不整合が生じる可能性があります。 自動生成したJSPファイルを流用する場合には、JSP開発ディレクトリ配下から JSP開発ディレクトリ外にJSPファイルをコピーしてから、出力用JSPファイルとして設定してください。
JSP開発ツールは、出力引数にマッピングされたSELECTタグの部分に自動生成でJSP構文を出力します。ここで生成したJSPファイルを再度出力用JSPファイルの元ファイル(HTML(JSP)タブで参照するファイル)として使用した場合、SELECTタグの部分に記述したJSP構文は保持されません。
JSP構文 <jsp:include page="ファイル名" flush="true" /> を使用する場合、以下の点に注意してください。
| <jsp:include page="/jsp/test.jsp"
flush="true" /> と指定した場合、以下のファイルを参照します。
|
他のフェーズで生成したJSPファイルを、フェーズの出力用HTML(JSP)ファイルとして使用する場合、サーバAPのメソッドの出力結果を参照するための記述が出力されず、WebAP JSP Developer でのコンパイル、リコンパイル時にエラーが発生します。これは、出力用HTML(JSP)ファイルに指定されたJSPファイルに対して設定されているメソッドのマッピング情報が引き継がれているためです。
このような場合には、JSPファイル中から
<%--- WebOTX WebAP JSP script1 Rel1 ----%>
・・・・・
<%--- WebOTX WebAP JSP script1 Rel1 ----%>
および
<%--- WebOTX WebAP JSP script2 Rel1 ----%>
・・・・・
<%--- WebOTX WebAP JSP script2 Rel1 ----%>
および
<%--- WebOTX WebAP JSP script3 Rel1 ----%>
・・・・・
<%--- WebOTX WebAP JSP script3 Rel1 ----%>
の範囲を削除してください。この範囲には、以前のフェーズから値を取得するメソッド定義が記述されていますが、削除することにより、新しいメソッドの出力結果を参照できます。
その他のHTML(JSP)ファイルの記述上の注意点については、「HTML作成の注意点」を参照してください。
| 2.5 テーブル |
テーブルの一行にTHタグとTDタグが混在している場合、THタグの列およびTDタグの列それぞれにマッピングが可能ですが、実際にWebAP JSPで動作させた場合に表示されるのはTDタグの列のみです。
<TH>と</TH>に囲まれた文字列とSELECTタグのNAME属性値が同じで、どちらも同じFORMタグ中にある場合、THタグを列マッピングすると、SELECTタグにもマッピングされたものとして扱われる場合があります。
SELECTタグにTHタグのマッピング結果が出力されないようにするためには、SELECTタグのNAME属性値をTHタグの間の文字列と異なるものにしてください。
| 2.6 IDLファイル |
IDLファイル中のstruct、sequence、typedef等の型宣言は、インターフェース宣言の後に記述してください。
ユーザの定義したクラスから派生したインターフェースは使用できません。
「R5形式」で作成したサーバAPをステートフルで実行するために、ステートフルオブジェクトの生成/解放用インタフェース(便宜上、ファクトリと記述する)を自製する場合は、以下の点に注意してください。
自製するファクトリの生成/解放用のオペレーション名と引数の定義を、「R4形式」で作成した場合に自動生成されるファクトリのCreateServerObject、ReleaseServerObjectオペレーションの定義と同じにしてください。オペレーションの定義が異なる場合は、WebAP JSPで作成したWebアプリケーションからアクセスできません。
以下に、サーバオブジェクトのクラスがfooの場合の、オペレーションの定義例を示します。
foo CreateServerObject();
void ReleaseServerObject(foo obj);
| 2.7 コンパイル |
コンパイル中にビルドパネルに表示できる文字数の限界を超えた場合、それ以上の情報は表示しません。このような場合は、ビルドログ(JSP開発ディレクトリ/logs/build.log)でビルド情報を確認してください。
JSP開発ツールで作成するプロジェクト名、トランザクション名、フェーズ名にJava言語の予約名を使用した場合、正常にコンパイルできない場合があります。
ソース生成時にstubディレクトリ配下を削除する様に指定した場合は、必ずリコンパイルをしてください。
環境設定でJavaコンパイラのオプションに -debug や -verbose を指定すると、コンパイルが終了しなくなります。 このような場合は、タスクマネージャでJSP開発ツールを強制終了してください。
| 2.8 IDLコンパイル |
下記は、Object Brokerバージョン6.x以上またはObjectSpinnerバージョン5.xを使用する場合の注意事項です。
IDLコンパイルを可能にするため、Object BrokerまたはObjectSpinnerのbinディレクトリを環境変数のpathに設定しておく必要があります。
IDLファイル名が異なっているが、モジュール名、インターフェース名が同じメソッドを、同一トランザクションのフェーズに割り当てることはできません。
| 2.9 JSPファイル |
HTMLファイルから自動生成したJSPファイルには、以下のようなHTMLコメント行が含まれます。
| <%--- WebOTX WebAP JSP script1 Rel1 ----%> <%--- This JSP File can be used for JSP 1.0 ---%> <%--- WebOTX WebAP JSP script2 Rel1 ----%> <%--- WebOTX WebAP JSP script3 Rel1 ----%> |
これは、自動生成したJSPファイルを元に別のSPファイルを自動生成する場合に、WebAP JSP Developer がJSP構文を重複させないために識別子として出力しています。
自動生成したJSPファイルを別のJSPファイルの元ファイルとして使用しない場合には、上記コメント行を削除してもかまいません。
| 2.10 プロジェクト管理サーバ |
JSP開発ツールとプロジェクト管理サーバは必ず同じバージョンのものを使用してください。
バージョンがあってない場合は、以下の情報がプロジェクト管理サーバのエラーログ(WebAP JSP Developer インストールディレクトリ\projServer\logs\error.log)に出力されます。
[2000:08:29:16:56:55:885]:クラス:Server,メソッド:Connection(1) ,
エラー情報:ネットワークのオープン処理でエラーが発生しました。[I/O
error]
java.io.IOException: PROTOCOL ERROR:VersionCode invalid
at jp.co.nec.webapjsp.server.lib.request.OpenProtocol.getRequestProtocol
(OpenProtocol.java)
at jp.co.nec.webapjsp.server.lib.Connection.<init>(Server.java)
at jp.co.nec.webapjsp.server.lib.Server.run(Compiled Code)
プロジェクト管理サーバを使用している場合、インストール後初めてのJSP開発ツールの起動は、プロジェクト管理者(PM)で行ってください。トランザクション管理者(TM)、担当者(NU)では起動できない場合があります。
| 2.11 JDK |
JDKのバージョンによって、JSP開発ツールの画面の見え方が多少異なる場合があります。当マニュアルの画面例は、JDK1.3を使用した場合です。
JDK1.4を使用すると、以下のようにJSP開発ツールでのキー入力時の動作が通常と異なる場合があります。
矢印キー(左右)でダイアログのタブ移動
ダイアログに複数のタブがある場合、左または右の矢印キーを入力すると、項目内の入力位置を移動するのではなく、タブが左右に切り替わります。項目内で入力位置を移動する場合は、上下矢印キーを使用するか、マウスを使用してください。
アンダーバー("_")をキー入力すると別の文字が表示
ダイアログの入力項目内で、キーボードからアンダーバー("_")を入力すると、"|"と表示されます。"_"を設定したい場合はコピーしてペーストしてください。
| 2.12 その他 |
WebAP JSP Developer をインストール後に最初にJSP開発ツールを起動する場合、またはWebAP JSP Developer の環境設定ツールで環境設定を行う場合は、administrator権限のあるユーザでログインしてください。
projectディレクトリ配下に作成されるすべてのディレクトリおよびほとんどのファイルはJSP開発ツールにより管理されています。ディレクトリの削除やファイルの変更を行った場合、正常に動作しない場合があります。
変更や削除が可能なファイルを以下に示します。
IDL(IF)ファイルが不正なファイルである場合、JSP開発ツールはエラーを通知します。この後、IDL(IF)ファイルを修正するには、JSP開発ツールをいったん終了してください。
プロジェクトJSPディレクトリ(WebAP JSP Developer のプロジェクトやJSPファイルを保存するディレクトリ)と、HTMLファイルやIDL(IF)ファイルは同一マシン上に置くことを推奨します。
JSP開発ツールは、プロジェクトJSPディレクトリ配下の定義ファイル群とHTMLファイル、IDL(IF)ファイルの更新時間を比較し、定義ファイル中の内容の更新が必要かどうかを判断します。
プロジェクトJSPディレクトリと、HTMLファイルやIDL(IF)ファイルが別々のマシンに置かれている場合、ファイルの更新時間はマシンの時間に依存するため、マシンの時間が異なっていると正しく更新確認できない場合があります。
「Object Brokerバージョン移行処理」を行った場合、MFDL移行以外のトランザクションでは、フェーズJavaソースファイル、JSPファイルの再作成が必要です。その際、フェーズJavaソースファイルやJSPファイルへのカスタマイズが失われないように注意してください。
バージョン3.1x以前のWebAP JSP Developer で作成したトランザクションを読み込んで、「ソース作成」、「ビルド」を行う場合は、そのトランザクションのすべてのフェーズJavaソースファイルを再生成してください。
フェーズJavaソースファイルの上書きを行わなかったり、ソース作成、ビルドを途中でキャンセルし、フェーズJavaソースファイルをすべて再生成せずにWebアプリケーションをWebAP JSPに転送すると、実行環境上で正しく動作しません。
フェーズJavaソースファイルにカスタマイズを行っている場合は、再生成したフェーズJavaソースファイルに反映してください。
環境設定画面の「ブラウザ」タブで「Webブラウザパス」に指定するWebブラウザとして、Netscape 6を指定しないでください。
Windows Terminal Serverには未対応です。Windows Terminal Serverで利用された場合には、定義情報ファイル等の保証はいたしません。