Oracle Developer Suiteリリース・ノート 10gリリース2(10.1.2)for Solaris Operating System (SPARC), Microsoft Windows, and Linux x86 B25106-03 |
|
![]() 戻る |
![]() 次へ |
この章では、Oracle JDeveloper 10g(10.1.2.1.0)に関する問題について説明します。この章の内容は次のとおりです。
JDeveloperは、Java、XMLおよびSQLの最新の業界標準を使用してアプリケーションとWebサービスを構築するための統合開発環境(IDE)です。Oracle JDeveloperでは、アプリケーションのモデル化、コーディング、デバッグ、テスト、プロファイリング、チューニングおよびデプロイのための統合機能を備えた完全な開発ライフ・サイクルをサポートしています。ビジュアルで宣言的なアプローチと革新的なOracle Application Development Framework(Oracle ADF)により、アプリケーション開発が簡略化され、定常的なコーディング作業量が減ります。このことにより、開発者は比類のない生産性を実現でき、好みのテクノロジ・スタックの選択も可能になります。Oracle JDeveloperには、開発環境への機能追加とカスタマイズを行うためのExtension SDKが付属しています。Oracle JDeveloperの詳細および最新の情報は、Oracle Technology Network(OTN)にあるJDeveloperのホームページ(http://www.oracle.com/technology/products/jdev/
)を参照してください。
このサイトの「Oracle JDeveloper 10g Release Notes Addendum」には、このリリース・ノートの発行時点で入手できなかった情報が記載されています。
JDeveloper 10.1.2.1.0は主にメンテナンス・リリースですが、新機能もいくつか追加されています。
オフライン・データベース・オブジェクトのインポート・ウィザードでは、スキーマの選択が最後の手順となりました。これは、TopLinkプロジェクトのオンライン・スキーマ名をスキーマのデフォルトに設定できるようにするためです。
動的プロジェクトの大規模なダイアグラムのレンダリングおよび全般的なレスポンス速度が改善されました。
Strutsエディタがフォーカスを毎回取得するのではなく、プロジェクトのコンパイル時または開発者がコンテキスト・メニューから検証を明示的に選択したときにXMLをDTDに照らして検証することにより、Struts編集のパフォーマンスがさらに改善されています。
接頭辞「/」(スラッシュ)が付いていないアクションを作成できるようになりました。つまり、先頭に「/」文字が付いていないページ名を指定することにより、ブラウザから直接アクセスできないプライベート・アクションを作成できます。逆に、ブラウザからアクションに直接アクセスできるようにする場合は、名前の先頭に「/」を付けます。
Fast Lane Reader設計パターンの実装が簡単にできるように、ビジネス・コンポーネント・ウィザードとビュー・オブジェクト・ウィザードが更新されました。新しいビュー・オブジェクトを作成する際に、読取り専用のSQL問合せによって移入されたデータを持つビュー・オブジェクトを作成できるようになりました。このモデルでは、すべてのデータがビュー・キャッシュに格納されるため、問合せが繰り返される場合にパフォーマンスが非常に向上します。
このリリースでは、ADF Business Componentsのパフォーマンスが大幅に向上しています。コードやアーキテクチャに対して変更を加える必要はありません。このリリースを使用してアプリケーションを再コンパイルし、デプロイして実行するだけです。使用するアプリケーションのタイプによっては、パフォーマンスが30%も改善される場合があります。
Bug 3077519「BLANK NEW ROW PROBLEM IS BACK FOR WEB APPS」が修正されたため、データ・バインディングの設計時が多少変わりました。JDeveloper 9.0.5のこの不具合では、ユーザーがボタンをクリックして空白のフォームに新しい行を追加した後、ブラウザの「戻る」ボタンをクリックして参照フォームに戻ると、空白行が参照フォームに挿入されます。
ADF Business ComponentsにバインドされているWebページの場合、この動作は変更されました。つまり、デフォルトで、ユーザーが「戻る」ボタンをクリックしても、空白行は表示されません。以前の動作がページで必要な場合は、次の手順を実行します。
エディタでWebページまたはStrutsページ・フロー・ダイアグラムを開いた状態で、構造ペインの「UIモデル」タブに移動します。
作成操作のアクション・バインディングを編集します。
ドロップダウン・リストで、デフォルトで表示されるCreateアクションのかわりにCreateInsertアクションを選択します。
JDeveloper 10.1.2には、埋込みOC4Jバージョン10.1.2が組み込まれています。OC4J 10.1.2の拡張機能およびバグ修正については、OC4Jのリリース・ノートを参照してください。
JDeveloper 10.1.2は、Oracle Application Server 10.1.2のOracle JDBCドライバとともに配布されています。
Oracle Application Server 10.1.2には、Oracle ADFランタイム・ライブラリが組み込まれています。つまり、ADFアプリケーションをOracle Application Server 10.1.2にデプロイする場合、ADF Runtime Installerを実行してADFライブラリをアプリケーション・サーバーにインストールする必要はありません。
この項では、JDeveloperアプリケーションの移行について説明します。
第6.3.1項「JDeveloper 9.0.3のPL/SQL Webサービスの再生成時にコンパイル・エラーが発生する」
第6.3.4項「Oracle9i JDeveloperで作成されたStrutsアプリケーションのOracle JDeveloper 10g Strutsアプリケーションへの移行」
第6.3.5項「ADFイテレータ・バインディングへのバインド時にビュー・オブジェクト行セットのデフォルト・イテレータが先頭行に進む」
第6.3.14項「移行後の9.0.X UIX/BC4J/JSPアプリケーションに利用可能なUIXリソースおよびスタイルがない」
(3023311)JDeveloper 9.0.3のプロジェクトを開き、そのプロジェクト内でPL/SQL Webサービスを再生成しようとすると、それ以降コンパイルできない状態のままになります。
対処方法: サービスを再生成する前に、サービス・パッケージに直接関連するJavaファイルおよび該当サービスで使用するオブジェクト・タイプをプロジェクトからすべて削除します。
(3506154)以前のバージョンのJDeveloperから移行されたWebサービスを再生成する場合、再生成されたインタフェースがデプロイメント・プロファイルから消失し、それが原因でデプロイされたサービスがアクセス不能になる場合があります。
対処方法:
「デプロイメント・プロファイル」ダイアログを使用し、消失したファイルを手動でインクルードした後、サービスを再デプロイします。
(3535897)JDeveloper 10gプレビューからユーザー設定を移行する場合、WS-Iテスト・ツールの場所は正しいように見えます。ただし、アナライザ・コードを正しく機能させるには、その場所を再入力し、非表示フィールドに移入する必要があります。
「ツール」→「設定」を選択し、「WS-Iテスト・ツール」を選択します。フォルダを参照するか、場所を入力して、テスト・ツールのホームの場所を再入力します。
JDeveloperまたは他のツールでは、Oracle JDeveloper 10gリリースに移行した後、正しくコンパイルできない場合があります。これは、該当アプリケーションがOracle JDeveloper 10gに正常に移行できた場合にも発生することがあります。
JDeveloper 10gに移行した後Strutsアプリケーションが正しくコンパイルできない場合は、移行プロセスでstruts.jarファイルがWEB-INF/libディレクトリから間違って削除されている可能性があります。
移行後のStrutsコンパイル・エラーを修正するには:
正しいstruts.jarファイルを、JDeveloper_installation_directory/jakarta-struts/libディレクトリからプロジェクトのWEB-INF/libディレクトリにコピーします。
JDeveloper 10gの新しいADFイテレータ・バインディングを使用すると、バインド先のイテレータが行セットの先頭行に進みます。これは、該当する行のUIレンダリングにとっては最適な動作です。この動作は、ADFイテレータ・バインディングがJSTLのような標準的なJSPタグ・ライブラリと連動して正しく機能するのに必要です。
ただし、この新しい動作が原因で、BC4JアプリケーションをJDeveloper 10gに移行しアプリケーションに新しいADFイテレータ・バインディングを追加すると、既存のアプリケーション・ロジックに問題が発生することがあります。例として、ユーザーが記述したビジネス・ロジックを表す次のようなアプリケーション・モジュール・メソッドを考えてみましょう。
public boolean employeeExists(Number empno) { EmpViewImpl eview = getEmpView(); eview.setWhereClause("empno = :1"); eview.setWhereClauseParam(0,empno); eview.executeQuery(); /* * When an ADF iterator binding is bound to "EmpView" then after * the executeQuery() the iterator will advance to sit on the first * row of the result -- in this case, the only row in the result -- * and the eview.hasNext() will return false. */ if (eview.hasNext()) { return true; } else { return false; } } * MIGRATION CAVEAT * ~~~~~~~~~~~~~~~~ * When no ADF iterator bindings are bound to the "EmpView" * view object instance -- more precisely, to the default iterator * of its default rowset -- then immediately after executeQuery() * the iterator will be at the slot before the first row. Assuming * this query retrives a single row, then the eview.hasNext() will * be true, since we haven't yet advanced to the first row. *
この問題は、行セットの結果をループ処理し、行ごとに操作を実行するように作成されている中間層のビジネス・ロジックで表面化する場合もあります。例としては、各行で一部の数値属性の合計を計算する場合などがありますが、それだけではありません。たとえば、次のようなコードを考えてみましょう。
public Number shoppingCartTotal() { ShoppingCartImpl cart = getShoppingCart(); cart.reset(); double total = 0; /* * MIGRATION CAVEAT * ~~~~~~~~~~~~~~~~ * When no ADF iterator bindings are bound to the "ShoppingCart" * view object instance, then immediately after the reset() call above * the iterator will be at the slot before the first row. The loop * below will operate over all N rows in the rowset coded like this. * * When an ADF iterator binding is bound to "ShoppingCart" then after * the reset() call, the iterator will advance to sit on the first * row of the result. If the loop code is not changed, then it will * operate on the 2nd through the Nth rows, missing the first row. */ while (cart.hasNext()) { ShoppingCartRowImpl curCartItem = (ShoppingCartRowImpl)cart.next(); total += curCartItem.getExtendedTotal().doubleValue(); } return total; }
問題の対処方法としては、次の2つがあります。
先頭行が存在しているかどうかをテストするだけの場合は、first() APIを使用し、結果がNULLかどうかをテストします。
行セットに対して反復を実行する場合は、createRowSetIterator()
APIを使用し、中間層のビジネス・ロジックで使用するセカンダリ・イテレータを作成します。イテレータをアクティブなまま存在させない場合は、ループが終了したときにイテレータ上でcloseRowSetIterator()
を必ずコールしてください。
作成する新しいコードでも、これらの最適な方法を使用します。この2つのアドバイスに従うと、前述の2つのサンプルは次のように書きなおすことができます。
public boolean employeeExists(Number empno) { EmpViewImpl eview = getEmpView(); eview.setWhereClause("empno = :1"); eview.setWhereClauseParam(0,empno); eview.executeQuery(); /* * Using first() instead of hasNext() to test for existence of * at least one row in the result since default iterator might be * bound to an ADF iterator binding being used in the view layer */ if (eview.first() != null) { /* Using first() instead of hasNext() */ return true; } else { return false; } }
および
public double shoppingCartTotal() { ShoppingCartImpl cart = getShoppingCart(); /* * Using secondary iterator since default iterator * might be bound to an ADF iterator binding being used * in the view layer */ RowSetIterator cartIter = cart.createRowSetIterator(null); double total = 0; while (cartIter.hasNext()) { ShoppingCartRowImpl curCartItem = (ShoppingCartRowImpl)cartIter.next(); total += curCartItem.getExtendedTotal().doubleValue(); } cartIter.closeRowSetIterator(); return total; }
ADF BCランタイム・アーカイブbc4jhtml.jarは、JDeveloperの今回のリリースで分割されています。移行するプロジェクトがbc4jhtml.jarを使用している場合、クラスパスを更新し、<JDEV_HOME>/BC4J/jlib/bc4jhtml.jar
と<JDEV_HOME>/BC4J/lib/adfmweb.jar
が含まれるように設定します。
JClientアプリケーションがJava Web Startに依存している場合、JDeveloper 9.0.5.2以前のbc4jlibs.earファイルにはjndi.jarが含まれています。JDeveloper 10.1.2以降、このJARファイルは不要です(このファイルは、現在では標準のJDK 1.4拡張機能として利用可能)。このjndi.jarファイルは、9.0.5.x JClientアプリケーションを10.1.2に移行する際、bc4jlibs.earファイルから削除する必要があります。
JClientベースのアプリケーションを9.0.3または9.0.4からJDeveloper 10g(9.0.5または10.1.2)にアップグレードするときに、アプリケーションにoracle.jbo.uicli.controls.JUErrorHandlerDlgを拡張しないカスタム・エラー・ダイアログがある場合、それらのカスタム・エラー・ハンドラ・ダイアログは、新しいoracle.adf.model.binding.DCErrorHandlerインタフェースを実装する必要があります。これは、oracle.jbo.uicli.binding.JUErrorHandlerインタフェースの実装でreportException()
メソッドの既存の実装に委任することにより実行できます。
OC4Jネイティブ(TopLinkではない)CMPマッピングを使用するCMP Entity Beanが含まれるEJBアプリケーションを移行する場合、ユーザーは次の簡単な操作を実行しないと、アプリケーションを10.1.x OC4Jサーバーに再デプロイできません。
CMP Entity Beanを選択し、JDeveloperのナビゲータでそのEJBノードを右クリックした後、「CMPマッピングの編集」を選択します。
注意: このメニュー項目は、OC4JネイティブCMPマッピングを使用してCMP Entity Beanがマッピングされている場合にのみ表示されます。該当するコンテキスト・メニュー項目が表示されない場合は、OC4Jネイティブ・マッピングを使用してEntity Beanがマッピングされていないため、移行手順を実行する必要はありません。 |
CMPマッピング・エディタが開いたら、「CMPフィールドのマッピング」ツリー・ノードを選択し、「関連マッピング」タブをクリックして、CMP Entity Beanが関与しているそれぞれの関連にアクセスします。該当するパネルにアクセスするだけで、そのパネルの終了時に新しいデータが保存されます。
CMPマッピング・エディタで、EJBモジュール内のCMP Entity Beanごとにこのプロセスを繰り返します。完了したら、「OK」を選択してマッピング・エディタを終了し、変更内容を適用します。
これらの手順を実行すると、EJBモジュールはOC4J 10.xサーバーにデプロイできる状態になります。
(3672145)JDeveloperリリース9.0.4からWebアプリケーションをコンパイルしようとすると、次のエラーが発生する場合があります。
/WEB-INF/ojsp-global-include.xml:oracle.xml.parser.v2.XMLParseException: Unexpected text in content of Element 'ojsp-global-include'
この問題を解決するには、/WEB-INF/ojsp-global-include.xml
ファイルを編集して次の要素を変更します。
<?xml version="1.0" standalone='yes' ?>
この要素を、次のように変更します。
<?xml version="1.0" standalone='no' ?>
(3797912)アプリケーションをOracle JDeveloper 10gリリース9.0.5.1からリリース10.1.2に移行する場合、これらのリリース間でテクノロジ・スタックが変更されていない場合でも、移行ダイアログが開く場合があります。このダイアログは、無視しても問題ありません。
(3848733)リリース9.0.5.2以前のOracle JDeveloperに含まれるバージョンのJDBCでは、Oracleスタイルのバインド・パラメータに対する厳密なエラー・チェックがサポートされていません。そのため、次のように同名のバインド・パラメータが複数含まれる式が許可されていました。
WHERE SALARY > :1 AND DEPARTMENT = :2 AND MANAGER_ID = :1
前述の式の第1パラメータおよび第3パラメータは「1」という名前になっていますが、これは以前のバージョンのJDBCでは検出されなかったエラーです。
以前のバージョンのJDBCでは、パラメータ名のコロンと数値部分の間のスペースに関するエラーも検出されませんでした。「: 1」(スペースあり)は、有効なOracleスタイルのバインド・パラメータではありませんが、以前のバージョンのJDBCではエラーとして検出されませんでした。
Oracle JDeveloper 10g(10.1.2)に組み込まれているバージョンのJDBCでは、厳密なエラー・チェックがサポートされており、where句や、パラメータにスペースが含まれる前述のような式に対しては例外がスローされます。以前のバージョンのJDeveloperからアプリケーションを移行する場合、一意でないOracleスタイルのJDBCバインド・パラメータを持つ式がそのアプリケーションに含まれているのであれば、その式内で一意になるようにパラメータ名を変更する必要があります。たとえば、前述の式は次のように変更します。
WHERE SALARY > :1 AND DEPARTMENT = :2 AND MANAGER_ID = :3
また、バインド・パラメータ名にスペースを含めず、ViewObject.setWhereClauseParam()およびViewObject.setWhereClauseParams()に対するコールを変更してすべてのパラメータ値を与えるようにする必要があります。たとえば、前述のWHERE句を含むビュー・オブジェクト定義で、次の命令があるとします。
setWhereClauseParams(new Object[] { value1, value2 }
この命令を次の命令で置き換える必要があります。
setWhereClauseParams(new Object[] { value1, value1, }
(3557211)以前のリリースからリリース10.1.2に移行する場合、CMP EJB Entity BeanがCMR関連を持つときは、それらの関連を更新する必要があります。各関連は、CMPマッピング・エディタで選択するだけで、JDeveloperによって自動的に適宜更新されます。
(3665125)9.0.X UIX/BC4J/JSPのアプリケーション・プロジェクト一式をJDeveloper 10gに移行し、そのアプリケーションを実行すると、UIXのリソースおよびスタイルが実行時に表示されません。移行プロセスでは、製品の以前のバージョンに関連するオブジェクトおよびファイルが削除されるのみなので、インストール可能な新しいリソースが追加されません。
対処方法:
アプリケーションを移行します。
モデルを再構築し、9.0.Xアプリケーションのプロジェクトを個別に表示して、UIXの最新のリソースおよびスタイルを追加します。
この項では、JDeveloperでのアプリケーションのデプロイに関する問題について説明します。
第6.4.1項「開かれていないサーブレット2.2 WARファイルから、XSQL Page Processorでページを読み取ることができない」
第6.4.5項「ADF UIXテクノロジ・スコープが設定されているプロジェクトで正しいデプロイメント・プロファイルが表示されない」
第6.4.7項「orion-ejb-jar.xml内での永続性マネージャの構成がOracleAS 10.1.2でサポートされない」
第6.4.10項「BC4J EJBをベースにしたJClient JNLPアプリケーションをOracle Application Serverにデプロイできない」
(1552039)XSQLページは、WebLogic 6.1/7.0、JBoss 3.0.4およびTomcat 4.1.12では実行できません。
BEA提供のOracleクラスを使用する場合、WebLogicにデプロイされたアプリケーションの中には、型の互換性がないものがあります。これらの問題が発生しないようにするには、サーバーのlibディレクトリにあるclasses12.zipおよびclasses12.jarファイルをjdev_install/jdbc/lib
ディレクトリのclasses12.jarで置き換えます。
WebLogic6.1はXMLファイルのWindows-1252エンコーディングを認識できません。これは、WebLogic6.1のXMLパーサーのバグです。JDeveloperのアプリケーションをWebLogic6.1にデプロイするには、WebLogic6.1が認識するIANAエンコーディングにエンコーディングを変更します。UTF-8エンコーディングの使用をお薦めします。日本語ユーザーはShift_JISを使用する必要があります。
「ツール」→「設定」を開きます。
「環境」パネルで「エンコーディング」フィールドを「UTF-8」に変更します。
「OK」をクリックします。
ここで、新規プロジェクトとアプリケーションを作成します。
(2589997)BC4JセッションFacade結果に対してJSPアプリケーションを作成すると、そのプロジェクトのweb.xmlにejb-refエントリが追加されます。そのFacadeのインタフェース・タイプをローカルからリモートに、またはリモートからローカルに変更する場合は、web.xmlのejb-refエントリを更新する必要があります。たとえば、Bean型をリモートからローカルに変更する場合は、web.xmlの<ejb-ref>セクションのかわりに、適切な<ejb-local-ref>タグを記述する必要があります。
(3316426)ADF UIXテクノロジ・スコープのみが割り当てられているプロジェクトを操作する場合は、「新規ギャラリ」ダイアログで、フィルタに「プロジェクト・テクノロジ」が設定されたデプロイメント・プロファイルの正しいリストが表示されません。フィルタを「すべてのテクノロジ」に切り換えると、デプロイメント・プロファイルのリストがすべて表示されます。
(3390872)UIXアプリケーションをWebLogicにデプロイする場合は、提供されているドキュメントに加えて、次の追加手順も参考にしてください。
EAR/WARアーカイブ・ファイルを展開する場合は、アーカイブ・コンテンツのターゲット・ディレクトリの名前をアーカイブの名前と同じにする必要があります。たとえば、webapp1.warを含むwebapp1.earを解凍する場合は、ディスク上に次の構造が作成されている必要があります。/webapp1(EARコンテンツ)/webapp1/webapp1/(WARコンテンツ)
アーカイブを展開したら、EARファイル内のapplication.xmlで、WARファイルのかわりに展開したディレクトリを示すように編集する必要があります。
EARファイルとWARファイルを展開したら、これらのファイルを削除して、展開されたファイルのみがアプリケーションの一部となるようにします。
コンテナ管理の永続性(CMP)Entity BeanをJDeveloper 10.1.2からOracleAS 10.1.2以前のバージョンにデプロイする場合は、orion-ejb-jar.xml内の永続性マネージャの設定を構成することはできません。これらの設定を行うとデプロイ・エラーが発生します。
(3590864)EARをWebSphere 5.1にデプロイした後、ADF BC4J JSPアプリケーションを起動すると、そのアプリケーションが異常終了し、次のような例外がアプリケーション・サーバー・ログに書き込まれる場合があります。
Exception: AppDeploymentException: [ADMA0092E: Unexpected exception occurred while preparing task MapRunAsRolesToUsers. Please check server machines FFDC for more information.] AppDeploymentException: [] com.ibm.etools.archive.exception.DeploymentDescriptorLoadException: WEB-INF/web.xml AppDeploymentException: [] com.ibm.etools.archive.exception.DeploymentDescriptorLoadException: WEB-INF/web.xml com.ibm.etools.archive.exception.DeploymentDescriptorLoadException: WEB-INF/web.xml
この例外を修正するには、アプリケーションのweb.xmlファイルから<filter-mapping>属性を削除します。
スタンドアロンOC4Jを使用して、JAAS認証およびOracle ADF Business Componentsを使用するアプリケーションを実行し、<oc4j_home>/home/config
で提供されているjazn.xmlのコピーを使用しない場合、プロパティoracle.security.jazn.configを使用してJVMにjazn.xmlのコピーの場所を渡す必要があります。たとえば、jazn.xmlファイルがディレクトリ/jazn/
にある場合、次のコマンドを使用します。
java -Doracle.security.jazn.config=/jazn/jazn.xml -jar oc4j.jar
このコマンドによりサーバーを起動します。
(4025025)BC4J Session BeanをベースにしたJClient Web StartアプリケーションをOracle Application Serverにデプロイする場合、次のデプロイ・エラーが発生することがあります。
Closing connection to Oc4jDcmServlet #### DCM command did not complete successfully (-8) #### HTTP return code was -8 Exit status of DCM servlet client: -8
この問題を修正するには、次の対処方法に従ってください。
JClient Web Startウィザードによって生成されたweb.xmlファイルで、<ejb-ref>要素とその内容を完全に削除します。次にweb.xmlのエントリの例を示します。
<ejb-ref> <ejb-ref-name>ejb/AppModuleBean</ejb-ref-name> <ejb-ref-type>Session</ejb-ref-type> <home>mypackage1.common.ejb.beanmanaged.AppModuleHome</home> <remote>mypackage1.common.ejb.beanmanaged.RemoteAppModule</remote> <ejb-link>AppModuleBean</ejb-link> </ejb-ref>
WARデプロイメント・プロファイルで設定されたプロファイルの依存性を削除します。これは次の手順で行います。
WARプロファイル(client_war.deploy)をダブルクリックします。
パネルの左側に表示されたツリーで「プロファイルの依存性」を選択します。
パネルの右側に表示されたツリーで「プロファイルの依存性」を選択解除します。
WARをOracle Application Serverにデプロイし、Web Startを実行します。
この項では、ADFに関する問題について説明します。
ADFベースのStruts Webアプリケーションでは、データ・コントロールから宣言的にメソッドを起動し、その結果のデータをページに表示する場合は、(専用のバインディング・コンテナを持つ)別のDataActionでメソッドを起動し、その結果をDataActionまたはDataPageに転送して表示するようにしてください。メソッドを、その結果にバインドされるイテレータと同じバインディング・コンテナで、メソッド・アクション・バインディングを使用して宣言的に実行しようとすると、問題が発生する場合があります。
(4113412)基本的なADFデータ・アクションをカスタマイズする場合、それらのカスタム・アクション・クラスがoracle.adf.controller.struts.actions
パッケージのDataActionクラスを直接または間接的に拡張する必要があります。一方、ADFデータ・ページのアクションをカスタマイズする場合、その同じパッケージのDataForwardActionクラスを直接または間接的に拡張する必要があります。さらにデータ・ページについては、struts-config.xmlファイルにおけるStrutsアクションのパラメータ属性の値でそのページの名前を記録することによって、JDeveloperがそのアクションをその関連ページに関連付けます。それに対して、データ・ページではないプレーン・データ・アクションでは、パラメータ属性は記録されません。
9.0.5.2および10.1.2では、ユーザーが、正しいDataActionクラスのかわりに、DataForwardActionクラスを不適切に拡張するカスタム・データ・アクション・クラスを誤って作成する場合があります。これは、9.0.5.2では問題はありませんが、10.1.2では、DataActionではなくDataForwardActionを拡張するカスタム・アクション・クラスを持つデータ・アクションには、Strutsページ・フロー・ダイアログラムが各JDeveloperセッションで初めて開かれたときに、望ましくない副作用があります。JDeveloper 10.1.2では、そのアクションによってDataForwardActionが拡張されていることが検出され、それがデータ・ページを意味するとみなします。そして、JDeveloper 10.1.2では、このみなされたデータ・ページには必須のパラメータ属性が欠落していることが検出され、それにparameter="unknown"
属性が追加されます。これによって、ダイアグラムのデータ・アクション・ノードがデータ・ページ・ノードに変わるという望ましくない副作用が発生することがあります。
この問題を回避するには、次のようにして、カスタム・データ・アクション・クラスがデータ・ページであるとみなされないようにします。
DataForwardAction
ではなくDataAction
を拡張する。
対応するstruts-config.xml
<action>
要素エントリにパラメータ属性を持たせない。
この項では、ADF Business Componentsに関する問題について説明します。
第6.6.1項「ADF Business Componentsでは「ソースパスをスキャンしてプロジェクト・コンテンツを設定」を使用しない」
第6.6.2項「WebLogic 8.1.2でADF BC4J JSPアプリケーションを実行すると「メソッドはありません」というエラーが表示される」
第6.6.6項「19個を超えるトップレベル・アプリケーション・モジュール・インスタンスを1つのアプリケーションで使用しない」
(3508285)ADF Business Componentsでは、JDeveloperのプロジェクト・オプションである「ソースパスをスキャンしてプロジェクト・コンテンツを設定」の動作は保証されません。このリリースでは、プロジェクトにADF Business Componentsが含まれている場合は、このプロジェクト・オプションを使用しないでください。
(3739767)WebLogic 8.1.2でADF BC4J JSPアプリケーションを実行すると、次のようなエラー・メッセージが表示されます。
java.lang.NoSuchMethodError: javax.xml.namespace.QName.(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
このエラー・メッセージが表示されないようにするには、アプリケーションを実行する前に、WebLogicサーバーのクラスパスに次の項目を追加します。
xmlparserv2.jar adfmweb.jar
(3274140)バッチ・モードで実行する場合は、カスタムのADFビュー・オブジェクト・インタフェースを使用するクライアント・サイドのコードもバッチ・モードで実行する必要があります。その場合は、最初にビュー・オブジェクトをアプリケーション・モジュールのカスタム・メソッドから戻します(このカスタム・インタフェースにキャストします)。そのようにしないと、ClassCastExceptionがスローされることがあります。
(3903758)スタンドアロンOC4J(完全なOracle Application Serverのインストールではない)を使用してADF Business Componentsを実行する場合、LDAPを使用して認証または認可のためのID管理を行えません。LDAPを使用してID管理を行うアプリケーションには、次の2つの条件があります。
アプリケーションをスタンドアロンOC4Jではなく、Oracle Application Serverの完全なインストールにデプロイする必要があります。
LDAPを使用してID管理を行う場合は、JDeveloperの設計時がスタンドアロンOC4Jに依存するため、JDeveloperでエンティティごとの認証を定義できません。この問題は、次のリリースのJDeveloperで修正される予定です。
(4113607)JDeveloper 10.1.2より前は、ADF BCランタイムは、エンティティ・レベルで公開されたビュー・リンク・アクセッサの戻り値のデータ型がRowIteratorであると誤ってハードコードされていました。これによって、公開されたビュー・リンクが1対1リンクであった場合に問題が発生しました。このバグ(3839762)は10.1.2で修正されましたが、10.1.2ビルド1811が出荷された後に、このバグ修正によって新しい問題が明らかになりました。その問題は、ビュー・リンクのソース・タイプと宛先タイプが誤って逆になるという設計時バグです。この設計時バグによって、エンティティのXMLディスクリプタにビュー・リンク・アクセッサのデータ型が書き込まれます。10.1.2より前は、RowIteratorであると想定してハードコードされたとき、XMLで誤ったデータ型は、実行時にデータ型に依存しないので、重大ではありませんでした。JDeveloper 10.1.2.1.0ではXMLベースの<ViewLinkAccessor>行タイプ情報を使用するため、データ型の不一致によってこの新しいClassCastExceptionが発生します。
たとえば、Employeesというアクセッサ名でDept EOレベルのDeptViewとEmpViewとの間のWorksInDeptLinkビュー・リンクを公開する場合、正しくないXML SnippetがDept.xmlファイルに書き込まれます。
<!-- In Dept.xml entity XML file --> : <ViewLinkAccessor Name="Employees" ViewLink="test.mypackage.WorksInDeptLink" ViewLinkEnd="test.mypackage.WorksInDeptLink.EmpView" ViewLinkOtherEnd="test.mypackage.WorksInDeptLink.DeptView1" Type="oracle.jbo.Row" IsUpdateable="false" > </ViewLinkAccessor>
DeptView VOがカスタム行クラスを公開する場合、それが反映され、次のようになります。
<!-- In Dept.xml entity XML file --> : <ViewLinkAccessor Name="Employees" ViewLink="test.mypackage.WorksInDeptLink" ViewLinkEnd="test.mypackage.WorksInDeptLink.EmpView" ViewLinkOtherEnd="test.mypackage.WorksInDeptLink.DeptView1" Type="test.mypackage.DeptViewRowImpl" IsUpdateable="false" > </ViewLinkAccessor>
generic oracle.jbo.Row
も、より具体的なtest.mypackage.DeptViewRowImpl
も、このアクセッサの戻り値のデータ型には適切でありません。この問題がメンテナンス・リリースで修正されるまでの対処方法は、JDeveloperの外部でDept.xmlファイルを更新し、ビュー・リンク・アクセッサの適切なデータ型を反映することです。前述の例では、次のようにデータ型をoracle.jbo.RowIterator
に変更します。
<ViewLinkAccessor Name="Employees" ViewLink="test.mypackage.WorksInDeptLink" ViewLinkEnd="test.mypackage.WorksInDeptLink.EmpView" ViewLinkOtherEnd="test.mypackage.WorksInDeptLink.DeptView1" Type="oracle.jbo.RowIterator" IsUpdateable="false" > </ViewLinkAccessor>
注意: ビュー・リンク・エディタでビュー・リンクを再度変更した場合、ウィザードが不正なデータ型の値を再び書き込んだ後で、この対処方法の再適用が必要になることがあります。 |
Webアプリケーションの場合、トップレベルの各アプリケーション・モジュールは、セッションCookieを使用してアプリケーションの安定性を高め(フェイルオーバーを使用)、状態の管理に役立ています。ADFもそれ自体のCookieを追加します。Microsoft Internet Explorerでは、その制限により、1つのホストごとに20個を超えるCookieは受け付けません。したがって、アプリケーションがMicrosoft Internet Explorerを使用してアクセスされる可能性があり、フェイルオーバーを無効にしていない場合、1つのクライアント・インスタンスに19個を超えるトップレベル・アプリケーション・モジュール・インスタンスは使用しないでください。必要な追加のアプリケーション・モジュール・インスタンスは、その19個のうちの1つの定義にネストする必要があります。1つのクライアント・インスタンスで19個を超えるトップレベル・アプリケーション・モジュール・インスタンスを使用すると、Microsoft Internet Explorerでは予期しない動作になることがあります。
この項では、ADF UIXに関する問題について説明します。
(2900583)特定のADF UIXコンポーネント(日付の選択、値リストなど)では、外部のポップアップ・ウィンドウを使用して、ユーザーが別のページに移動することなく値を選択できるようになっています。しかし、サード・パーティのツールバーの中には、これらのウィンドウの使用を許可せず、HTMLのようにベース・ページに戻って対話できないものがあります。現時点でのこの問題の唯一の対処方法としては、UIXコンテンツを含むサイトに対してポップアップ・ブロッキングを無効にします。
UIXをホストしているサーバーでパフォーマンスを最適化するオプションとしてJavaScriptファイルの圧縮を有効にしている場合、Microsoft Internet Explorerの不具合により、ADF UIXがJavaScriptライブラリをロードするルーチンが正常に機能しない場合があります。ADF UIXではこの最適化はデフォルトで実行されておらず、一部のサーブレット・コンテナまたはOracleのWeb Cacheテクノロジで構成できます。この問題を回避するには、UIXアプリケーションによってロードされるJavaScriptライブラリを圧縮しないようにしてください。
この問題は、他のブラウザには影響しません。
(3038299)特定の条件下では、プロジェクトの.uitテンプレートの中には、UIXページに挿入するコンテキスト・メニューに表示されないものがあります。「すべて保存」操作を実行すると、プロジェクトのすべてのテンプレートが使用可能になります。
(3458363)UIX Imageコンポーネントのソース属性を設定するときに、選択したイメージがhtml_rootディレクトリ以外の場所に保存されていたり、JDeveloperがインストールされているドライブとは異なるドライブに保存されていると、html_rootディレクトリにファイルをコピーするオプションの操作は失敗します。この問題を回避するには、イメージ・ファイルをファイル・システムに手動で移動またはコピーします。
このリリースのUIXプレビューでは、ADFデータ・コントロールを使用してバインドされたページにライブ・データを表示できません。
この項では、JDeveloperおよびApache Strutsでの制限事項について説明します。
このリリースのStrutsダイアグラミングでは、1つのワークスペース・プロジェクトでサポートできるStruts Diagramは1つだけです。複数のStruts構成ファイルは、個別のプロジェクトに振り分ける必要があります。複数のStruts構成ファイルによるアプリケーションの作成方法は、次のURLにある、OTNのJDeveloper How To Documentsのページを参照してください。
http://www.oracle.com/technology/products/jdev/howtos/index.html
JDeveloper 10gでは、Tileを使用したStrutsアプリケーションの開発が可能ですが、そのようなアプリケーションでページ・フロー・ダイアグラマ・ビューを使用することはできません。Struts構成ファイルの直接編集、Strutsコンソール・エディタの使用および構造ペインとプロパティ・インスペクタの利用は、Tileベースのアプリケーションの開発時にも可能です。
(3423938)Actionを(ページ・フロー・ダイアグラムのコンテキスト・メニューを使用して)Struts Pageフローのデフォルトの開始アクションとして定義すると、プロジェクト・プロパティが更新され、指定したアクションがデフォルトの実行ターゲットになります。また開始アクションがForward Actionの場合は、web.xmlの<welcome-files>コレクションが、指定されたページの新しい<welcome-file>エントリで更新されます。このエントリを必要に応じてweb.xmlで修正し、基本のActionForwardのページではなく、Strutsアクションにリダイレクトするページを使用できます。また、同じデフォルトの開始アクションをプロジェクトで数回設定する場合は、複数のエントリをwelcomeファイル・リストに追加することもできます。
(3452660)StrutsベースのWebページに挿入するコンポーネントに、入力フィールドなどのフォーム要素が必要な場合、JDeveloperでは、作成されるフォーム内にコンポーネントを挿入するように求められます。フォーム要素は、Requestオブジェクトに値を渡すために実行時に使用されるもので、次のようなターゲットのStrutsアクションを指定するためのプレースホルダ・テキストが含まれています。
<html:form action="/Handle_This_Form.do">
このaction属性を編集して、ページ・フローがフォーム入力を処理するために使用するアクションの名前を指定する必要があります。たとえば、アクションの名前がMyActionNameである場合は、/Handle_This_form.doを/MyActionName.doに変更します。
(3443358)Strutsページ・フロー・モデラーでの作業中に、フォワードを表すテキスト・ラベルがData Page/Data Actionと重なると、メソッドをデータ・コントロール・パレットからData Page/Data Actionにうまくドラッグ・アンド・ドロップできない場合があります。この場合は、フォワード・ラベルをData Page/Data Actionと重ならない位置に移動すると、メソッドをData Page/Data Actionにドラッグ・アンド・ドロップできます。
(3976907)簡単なStrutsアプリケーションを設計または実行しているときに、コンソールに次のエラー・メッセージが表示される場合があります。
ディレクトリC:\WEB-INFが存在しません。
このメッセージは無視してもかまいません。
この項では、データ・バインディングに関する問題について説明します。
(3278854)変更されたrangeSizeでデータをフェッチしたり、クライアント・サイドのキャッシュを後から付加する際のパフォーマンス問題を回避するには、同じアプリケーションやアプリケーション・フローの複数のバインディング・コンテナにおいて、イテレータ・バインディングに関連付けられたRowSetIteratorのすべての使用に対し、同じrangeSizeを設定してください。
(3389123)Beanアクセッサによって返されるスカラー属性は、ADFデータ・バインディングでは「readonly」とマークされます。このリリースでは、これらの値の更新サポートは実装されていません。
(3475505)<adf:render>または<adf:inputrender>タグを使用して、スカラー属性を持たないBeanをレンダリングしようとすると、oracle.jbo.NoDefExceptionがスローされます。
(3412750)oracle.jbo.domain.Arrayデータ型は、JSPのカスタムInput/Valueレンダラや、JClientのJUArrayComboBoxを使用してレンダリングできます。将来のリリースでは、これらのArrayオブジェクトはコレクション型として間接参照したり処理できるようになるため、そのノードを開いたり、Arrayコンテンツ(スカラーを持たない)をデータ・バインディング・パレットからアクセスして削除できるようになります。
(3323420)カスタム・アプリケーション・モジュール(AM)メソッドのコレクションの戻り型の型(Beanクラス)は設定できません。他のモデルでは、XMLファイルを編集して、コレクションのBeanクラスを設定できます。ただし、BC4Jモデルではこれらの操作ができません。この問題を解決するには、設計時にメタデータを必要としない動的なウィジェットを使用します。
(3507403)ビュー・リンクのマスター/ディテールがページから削除され、マスター・ビュー・オブジェクトのRSINameがNULL以外に変更された場合、ディテールはマスターとアクティブに調整されません。これは、削除されたディテールがマスター・ビュー・オブジェクトのデフォルトのRowSetIterator(指定のRSIでなはい)にバインドされているためです。この問題を回避するには、マスターViewObjectのiteratorBindingのRSINameを編集または変更しないでください。NULLのままで使用してください。
(3539053)クライアント・プロジェクトで複数のビジネス・サービスを使用する場合、各データ・コントロールのIDは.cpxファイル内で一意である必要があります。データ・コントロール・パレットを使用してドキュメントを設計する場合、データ・コントロール参照は、一意のIDで.cpxファイルに追加されます。実行時のエラーを回避するため、.cpxファイルでデータ・コントロールのIdプロパティを(プロパティ・インスペクタで)編集して、同じ名前を使用しないようにしてください。
(4081647)JDeveloper 10.1.2のビュー・オブジェクト・ウィザードの最初のパネルにある「読取り専用アクセス」ラジオ・グループを選択して読取り専用ビュー・オブジェクトを作成する場合、次に表示されるパネルでSQL問合せを入力した後、ウィザードを続行(「次へ >」を選択)し、「属性」パネルが表示されると、最初の属性の「問合せで選択済」プロパティが誤って「False」に設定されます。これにより、問合せの最初のSELECTリスト列から移入されるSQL導出属性が、意図しない一時属性に変更されます。この問題には、次の2つの簡単な対処方法があります。
ビュー・オブジェクト・ウィザードで、「終了」をクリックしてから「属性」ページに進みます。
最初の属性の「問合せで選択済
」プロパティを「True
」に戻します。
この項では、JClientに関する問題について説明します。
(3442568)JClientクライアントでは、基本のエンティティ・オブジェクト属性またはビュー・オブジェクト属性に入力されたツールチップ・テキストは無視されます。この問題を回避するには、クライアント・コードにツールチップ・テキストを設定します。次の例に、Deptno属性にツールチップ・テキストを設定する方法を示します。
mDeptno.setToolTipText(panelBinding.findCtrlValueBinding("Deptno").getTooltip());
(3405193)エンティティ・オブジェクト・エディタやビュー・オブジェクト・エディタでビジネス・コンポーネント属性に設定した表示の幅と高さは、Javaビジュアル・エディタでコントロールをレンダリングする際に使用されません。
(3379812)データ・コントロール・パレットからJClientパネルやフォームに、コレクションにバインドするコントロール(表、ツリー、リスト、グラフなど)を挿入すると、そのコントロールの幅と高さは0に設定されます。幅と高さのサイズが0では、ビジュアル・エディタでコントロールのサイズを変更できません。サイズを変更できるようにコントロールを表示するには、構造ウィンドウでコントロールを選択し、プロパティ・インスペクタでサイズ・プロパティを編集します。
JDeveloper 9.0.5.xからは、JClientアプリケーションで作成する新規行は、TEMPORARYとして初期化され、検証やポストは行われません。検証やポストを行うには、ユーザーが行を編集するか、setNewRowState()をコールして行の状態をNEWにする必要があります(次の説明を参照)。この変更を行ったのは、スプレッドシートのように、Java UIアプリケーションの一般的な動作を反映させるためです。これにより、一連の行を事前に作成および挿入できるので、アプリケーションではユーザーが入力した行を検証、ポストおよびコミットするだけで済みます。
ただし、この動作により、行を完全に、ポストできる状態として作成する必要があるJClientアプリケーションがトランザクション・コミットの間無視される場合があります。新しい行の状態をNEWに設定し、9.0.5より前のJClientの動作をシミュレートするには、その行の状態に遷移するコードを作成する必要があります。これには、次のようにいくつかの方法があります。
ViewRowImplサブクラスのsetNewRowState()コールをオーバーライドして無視します。
デフォルトのnavbarアクションをオーバーライドして作成し、superの後に、getIteratorBinding().getCurrentRow().setNewRowState(Row.STATUS_NEW)を使用して、イテレータに現在の行を取得し、新しい行の状態をNEWに戻します。
カスタム・アクションで実行されるイベントを「作成」または「新規」ボタンに実装し、コードの該当するRowSetIteratorでcreateRow()/insertRow()をコールします。
デフォルトのブラウザがInternet Explorerの場合、Java Web StartでJSPを起動するのではなく、JSPをダウンロードするように求められます。これは、Internet Explorerバージョン6以前の既知の問題です。この問題を解決するには、静的JNLPファイルを作成するか、JDeveloperツールの設定を使用して別のブラウザを起動します。JClient Java Web Startウィザードでは、静的JNLPファイルを生成できるので、これを変更して、JNLP定義を含めることができます。または、動的JNLPを使用し、使用するキャラクタ・セットが英語である場合は、Local.jspファイルを編集して、次のようにファイルのページ・ディレクティブにあるcharsetエンコーディング属性を削除します。
<%@ page contentType="application/x-java-jnlp-file" %>
この項では、JDeveloperおよびTopLinkに関する問題について説明します。
第6.11.5項「テクノロジ・スコープにTopLinkが設定されたプロジェクトでクラスをマッピングする際に例外が発生する」
第6.11.8項「TopLink Mappings Editorにアクセッサ(ゲッターおよびセッター)がメソッドとして表示されない」
TopLink Mappings Editorで「カスタム問合せ」タブを使用すると、TopLinkディスクリプタの挿入、更新、削除、読取りまたはすべて読取りの各アクションに使用するカスタムSQLを定義できます。たとえば、デフォルトのTopLink readObject関数をカスタム・ストアド・プロシージャに置き換えるには、カスタムSQL文字列を追加して、「カスタム問合せ」タブの「読取り」タブで置換コードを実装します。
OracleAS TopLink Mapping Workbench 9.0.4.xプロジェクト(.mwp)をOracle JDeveloper 10gにインポートするには、次の手順を使用してください。
この手順を実行する前に、オリジナルのMapping Workbenchプロジェクトのバックアップ・コピーを必ず作成してください。
Mapping Workbenchのプロジェクトをインポートする手順は次のとおりです
JDeveloper TopLink対応プロジェクトを新規作成します。
このプロジェクトに、オフラインのデータベース・オブジェクトを作成します。次のメソッドのいずれかを使用して、(Mapping Workbenchプロジェクトの\mw\tableディレクトリでの指定に従って)必要なデータベース表を作成します。
Mapping Workbenchプロジェクトの表が、稼動中のデータベースからインポートされたものである場合は、その表をJDeveloperプロジェクトにインポートします。
表がMapping Workbenchプロジェクトで作成され、稼動中のデータベースに存在しないものである場合は、各データベース表を手動で作成します。
注意: JDeveloperの表名、列名、外部キー制約がそれぞれ、Mapping Workbenchで対応する表名、フィールド名、参照名と同一であることを確認してください。この名前が同一でない場合、JDeveloperでは、マッピング情報が正しくインポートされないことがあります。 |
JDeveloperプロジェクトを閉じます。
元のMapping Workbenchプロジェクトから、次のファイルとディレクトリをコピーします。
表6-1 コピーするMapping Workbenchファイルとディレクトリ
Mapping Workbenchプロジェクトからコピーする要素 | JDeveloper内での配置先 |
---|---|
<file name>.mwp |
このファイル名をtoplink_mappings.mwpに変更し、JDeveloperの<project name>ディレクトリに置きます。 |
descriptorディレクトリ |
<project name>/descriptor |
Javaのソース・ファイルとディレクトリの構造 |
<project name>/src |
EJB 2.0 CMPプロジェクトの場合: ejb-jar.xml |
<project name>/META-INF |
テキスト・エディタでtoplink_mappings.mwpファイルを開き、Schema.Tableについて次の変更を行います。
プロジェクトの<name>要素の変更
プロジェクトの<name>要素をtoplink_mappingsに変更します。
各データベース表の<name>要素を変換します。
<database-table>要素には、各データベース表が<name>要素で列挙されます。この<name>には、カタログ、スキーマおよび表の名前が含まれる場合があります。それぞれの表を変更して、スキーマと表の名前だけが含まれるようにする必要があります。
次の表は、いくつかの変換例を示しています。
テキスト・エディタで各ディスクリプタの<projectname>/descriptor/<descriptor name>.xmlファイルを開き、次のように変更します。
各データベース表のディスクリプタの表要素を変換します。
JDeveloperプロジェクトを開きなおして、次のいずれかの方法で、プロジェクトにソース・ファイルを追加します。
toplink_mappings.mwpファイルで変更した<name>に対して、各ディスクリプタの<project name>/descriptor/<descriptor name>.xmlファイルの次の要素で同一の名前変更を行う必要があります。
<field-table> <primary-table> <associated-table> <reference-table> <reference-name> <relation-table> <sequencing-policy-table> <source-table> <target-table>
「プロジェクト・プロパティ」ダイアログで「ソースパスをスキャンしてプロジェクト・コンテンツを設定」オプションを選択します。これによって、動的なソース・パスにソース・ファイルが追加されます。
「プロジェクト」→「プロジェクトに追加」を選択して、<project name>/srcフォルダのコンテンツを追加します。これにより、プロジェクトにソース・ファイルが直接追加されます。EJBプロジェクトの場合、「ファイル」→「インポート」→「EJBデプロイメント・ディスクリプタ・ファイル」を選択します。ウィザードを使用して、<project name>/META-INF/ejb-jar.xmlファイルと/srcファイルをインポートします。
(3376332)作業ユニットでオブジェクトの主キー属性を変更できません。これは、サポートされていない操作であり、例外やデータベースの障害などの予期しない動作を引き起こします。
一意制約を持つオブジェクトのインスタンスを他のオブジェクトと置き換えるには、作業ユニットのsetShouldPerformDeletesFirstメソッドを使用します。詳細は、『Oracle Application Server TopLinkアプリケーション開発者ガイド』を参照してください。
(3492309)TopLinkを使用してEJB 2.0 CMPプロジェクトをデプロイするには、orion-ejb-jar.xmlファイルが必要です。プロジェクトにorion-ejb-jar.xmlファイルがない場合は、プロジェクトの任意のCMP EJBのTopLinkマッピングをクリックすると、次の例に示すように、基本的なorion-ejb-jar.xmlファイルが作成されます。CMP EJBの「TopLinkマッピング」タブをクリックすると、永続性マネージャがTopLinkとして設定されます。
TopLinkテクノロジが選択されたプロジェクトに新しいクラス(.java)をインポートし、その後で、構造ペインのTopLinkノードで「ディスクリプタを作成」ボタンを選択してこれらのクラスをマッピングしようとすると、oracle.toplink.workbench.external.meta.ExternalClassNotFoundException
エラーが発生します。このエラーを回避するには、初めてマッピングする前に、インポートしたクラスを1回コンパイルします。
orion-ejb-jar.xmlの各EJB CMPに、<PM-name="toplink">
属性エントリが設定されていることを確認してください。
この手順を使用して、<PM-name="toplink">
属性エントリを作成することもできます。
「新規ギャラリ」ダイアログから「デプロイメント・ディスクリプタ」→「orion-ejb-jar.xml」を選択して、最小のorion-ejb-jar.xmlを作成します。
アプリケーション・ナビゲータで「TopLink Mappings」ノードをクリックします。
「TopLink Mapping構造」ペインで各CMP EJBをクリックします。この操作により、TopLink Mappings Editorが起動し、<PM-name="toplink">
属性エントリが各CMP EJBの<entity-deployment>タグに追加されます。
(3530302)TopLinkテクノロジが選択されたプロジェクトに新しいクラス(.javaファイル)をインポートし、その後で「TopLink構造」ペインの「ディスクリプタを作成」ボタンをクリックしてこれらのクラスをマッピングしようとすると、oracle.toplink.workbench.external.meta.ExternalClassNotFoundException
エラーが発生します。このエラーを回避するには、初めてマッピングする前に、インポートしたクラスを1回コンパイルします。
(2986395)コード・エディタでTopLinkデプロイメント・ディスクリプタを追加した後、「TopLink Mappings」タブがコード・エディタに表示されない場合があります。その場合は、コード・エディタをいったん閉じてから開きなおすと、「TopLink Mappings」タブが表示されます。
(3733058)表からJavaオブジェクト(およびTopLinkディスクリプタ)を作成した後、.javaファイルを不適切な構文(たとえば、private Stri)で変更してJDeveloperを閉じると、JDeveloperを再起動したときに、変更した.javaファイルのTopLinkディスクリプタが失われます。
(3633296)TopLink Mappings Editorにアクセッサをメソッドとして表示するには、Mappings Editorを終了し、JDeveloperプロジェクトを保存してから、Mappings Editorを再起動します。これで、アクセッサはメソッドとして表示されます。
(3747403および3773050)マッピングされた属性を変更したとき、「TopLink Mapping構造」ウィンドウが正しく更新されず、変更が表示されない場合があります。「TopLink Mapping構造」ウィンドウを更新させるには、変更を行った後でプロジェクトを保存する必要があります。
(3845935、3845909、3845804)TopLink Mappings EditorにJAWSスクリーン・リーダーを使用すると、次のユーザー・インタフェース要素が正しく読み取られない場合があります。
「順序付け」タブの「事前割当て」フィールド
「TopLink Mapping構造」ウィンドウの特定のマッピング・タイプ
(3768125)ドル記号($)が含まれたクラス名は内部クラスです。TopLink Mappings Editorを使用して、それらのクラスに対してTopLinkディスクリプタを作成することはできません。
(3856465)JDeveloperには10g固有のデータベース・ファイルが含まれていません。TopLink Mappings EditorでOracle Database 10gを使用するには、Oracle9iデータベース・オプションを選択します。
(3859963)JDeveloperプロジェクトをTopLinkマッピングとともに10.1.2に移行する場合、TopLinkSequenceOnCreate
およびTopLinkShouldPerformDeleteFirst
パラメータはオプションであるため、移行先プロジェクトに含めることができません。必要に応じて、構造ウィンドウまたはプロパティ・ウィンドウを使用して、これらのパラメータを追加する必要があります。詳細は、Javadocを参照してください。
(3813680).javaファイルのコードに属性を追加する場合は、ファイルを保存して属性が「TopLink構造」ウィンドウに正しく表示されるようにする必要があります。
(3603407)TopLink Mappings Editorでは、デフォルトのTopLink問合せ(「すべて読取り」や「一度に読み込む」など)にキャッシュ・オプションを構成できません。たとえば、「キャッシュの使用方法」、「バインディング」、「タイムアウト」、「返す行数(最大桁)」などの項目を変更できません。
(3736337)OracleAS 10g(10.1.2.1.0)にデプロイするときに、TopLink ADFデータ・バインディングを使用するには、JDeveloperで「ツール」→「ADF Runtime Installer」オプションを選択します。スタンドアロンOC4Jを使用する場合は、ADF Runtime Installerを使用する必要はありません。
(3887079)TopLink sessions.xmlでデータベース・セッションを使用する場合は、接続プールを作成または使用しないでください。接続プールはサーバー・セッションにのみ使用します。
(3903528および3926599)クラスをリファクタ(名前の変更または削除)しても、関連するTopLinkディスクリプタの名前の変更や削除が行われません。TopLinkディスクリプタの名前を変更するには、最初にディスクリプタをプロジェクトから削除してから、名前を変更したJavaクラスを再インポートします。新しいTopLinkディスクリプタは、新しいクラス名で作成されます。
(3900559)JDeveloperでは、TopLink sessions.xmlのセッション名の先頭に空白を付加できますが、空白を付けると実行時に例外が発生します。セッション名の先頭には空白を付けないでください。
(3917609)JDeveloperでデータ・コントロールを操作しているときに、DCXを変更してもCPXに反映されない場合があります。この問題を回避するには、データ・コントロール(DCX)を変更する前に、データ・バインディング(CPX)を変更してください。
(3815959、3903366)TopLinkにマッピングされたオブジェクトが1:Mの関係にあり、双方向の関係のメンテナンスを使用する場合、この関係の外部キー制約のソース列に非NULL制約があると、UnitOfWork.commit()にデータベースの整合性制約違反が発生する場合があります。この問題は、コミット・データ・アクション時にTopLink ADFで発生します。
対処方法:
1:Mの関係を私有として設定します。これで、関連付けられたオブジェクトが1:Mコレクションから削除されるときに、NULLのFK値を持つように更新するのではなく、データベースから削除するようにTopLinkに指示されます。1:Mコレクションの関係にあるオブジェクトの関連付けを解除すると、関連付けられているデータベース行が削除されるので、このオプションを使用する場合は注意が必要です。
外部キー制約のソース列で非NULL制約をオフにします。これにより、整合性制約に違反することなく、NULLが更新されます。
(3983407)マルチバイト文字列がsession.xmlにある場合、session.xmlの「ソース」ビューに文字化けして表示されます。これは、表示上の問題です。「ソース」ビューまたはsession.xmlは読取り専用であるため、実際のsession.xmlは正しくエンコードされます。
TopLinkの作業ユニットのコミット時には、その状態が自動的にリセットされません。トランザクションが複数にわたると、作業ユニットのチェンジ・セットが大きくなり、結果としてパフォーマンスが低下する場合があります。作業ユニットの状態は、ビュー層またはコントローラ層の中からTopLinkDataControl.resetState()をコールすることで明示的にリセットできます。たとえば、Struts DataActionのhandleLifecycle()メソッド内からコールする場合、コードは次のようなものになります。
TopLinkDataControl dc = (TopLinkDataControl) actionContext.getBindingContext().findDataControl("DataControlName"); if (! this.hasErrors(actionContext) ) { dc.resetState(); }
また、コミット操作後にresetState()
をコールして、状態のアンマップされた機能を明示的にリセットすることもできます。PL/SQL Webサービスを再生成した後、コンパイル・エラーが発生する場合があります。その原因は、再生成中にいくつかのファイルがプロジェクトから削除されるためです。この問題を解決するには、削除されたファイルを手動でプロジェクトに再追加する必要があります。
この項では、Webサービスに関する問題について説明します。
第6.12.4項「PL/SQL Webサービス・ウィザードでプロジェクトを変更すると、エンドポイントのコンテキスト・ルートを更新できない場合がある」
第6.12.6項「JDeveloperのインストール・パスにスペースが含まれている場合に生成されたWebサービス・スタブが異常終了する」
(2954818)JDeveloperでは、起動時に有効なネットワーク接続が確保されるとはかぎりません。また、関連するすべてのスキーマはW3Cサイトにあり、それらは法律上の理由でローカル・インストールにコピーできないため、JDeveloperにWSDLファイル・タイプ用のXMLスキーマを事前登録することができません。このような理由により、JDeveloperのXMLエディタではWSDLドキュメントの編集にコード・インサイトを使用できません。
(3431499)ナビゲータでは、Webサービス・ノードを選択し、「アプリケーションに追加」ボタン(+記号)をクリックします。ダイアログで、\src\<package>ディレクトリにナビゲートします。.sqljファイルをすべて選択して、「開く」をクリックします。これで、プロジェクトをコンパイルしてもエラーが発生しなくなります。
(3194304)JAWSなどのアクセシビリティ・リーダーを使用する際には、Webサービスの検索ウィザードの使用に注意する必要があります。「WSDLかどうか」列に有効値が返されていることを確認するには、ウィザードの「モデル」ページに、行が正常にロードされるまで待機する必要があります。これを行うには、まず「説明」列に移動します。行がロードされている間は、「説明」列に「ロード中」と返されます。行のロードが終了すると、「説明」列にWebサービスの説明が表示されます。この時点で、「WSDLかどうか」列に移動して、値を読み取ります。
(3477647)PL/SQL Webサービス・ウィザードのステップ1には、Webサービスを生成するプロジェクトを選択できるコンボ・ボックスがあります。ウィザードのステップ3に進むと、選択したプロジェクトのコンテキスト・ルートを使用して、Webサービスのエンドポイントが自動生成されます。
ここで、ステップ1に戻って他のプロジェクトを選択してからステップ3に戻ると、Webサービスのエンドポイントの自動再生成に失敗し、エンドポイントには、最初に選択したプロジェクトのコンテキストが使用されています。
プロジェクトの正しいコンテキスト・ルートを反映させるには、Webサービスの生成前に、ウィザードでエンドポイントを手動で更新する必要があります。この操作を行わないと、生成されたWSDLドキュメントのエンドポイントが間違ったものとなり、Webサービスにアクセスするためにスタブが生成されても、間違ったエンドポイントを指すようになります。別の方法として、Webサービスを生成後に再編集し、正しいエンドポイントに設定を変更してから再生成することもできます。
(2966028)オブジェクト型のパラメータまたは属性としてXMLTYPEを使用するPL/SQL Webサービスでは、SYS.XMLTYPEというスキーマ修飾名を使用する必要があります。
(3068701)JDeveloperをインストールしたパスのフォルダのいずれかの名前にスペースが含まれている場合に、Webサービスを生成して、埋込みOC4Jサーバーで、またはOC4Jサーバーの外部インスタンスで実行すると、そのWebサービスをコールしたときにWebサービスへのスタブが異常終了します。
対処方法として、フォルダ名にスペースが含まれていないパスにJDeveloperをインストールします。
(2920137)Webサービス・スタブ/スケルトンの作成ウィザードの「Webサービス記述を選択」ページでは、http://schema.xmlsoap.org/soap/encoding/
のbase64タイプのXMLスキーマを認識できません。結果として、WSDLファイルからは、このタイプを参照するサービスを生成できません。
(3522618)データベース・パッケージ名にハイフン(-)を含むプログラムを元にPL/SQL Webサービスを生成すると、ハイフンがJava識別子として有効な文字ではないため、JPublisherが不正なSQLJファイルを生成します。対処方法として、JDeveloperによって生成されたSQLJファイルを編集し、パッケージ名の出現部分を引用符("")で囲んでから再ビルドします。
(3535903)「ツール」→「プリファレンス」→「WS-Iテスト・ツール」で設定するWS-Iログ・ファイルの保存先は、JDeveloperと同じシステム・ドライブにあることが必要です。別のドライブが設定された場合には、ログ・ファイルは作成されません。たとえば、JDeveloperをDドライブにインストールした場合は、WS-Iログ・ファイルの保存先もDドライブにする必要があります。
Webサービス固有の移行情報については、「移行の問題」を参照してください。
(3912349)JDeveloper 10.1.2では、WSDLドキュメントで定義可能なすべてのcomplexTypesのサブセットのみが認識されます。たとえば、WSDLのtypesセクションに次のタイプが出現する場合、これらのタイプを使用すると、スタブまたはスケルトンのUnknownTypeへの参照が生成されます。
simpleTypesの制限
属性を定義するcomplexTypes
(3992526)OC4Jで実行しているWebサービスがあり、生成されたスタブをそのサービスに対して実行すると、サービスのターゲット名前空間でURLの最初の部分にアンダースコアが含まれている場合に、「デシリアライザがありません」というメッセージが表示されてスタブが失敗します。これは、スタブが実行されると、ターゲット名前空間のアンダースコアがハイフンに変換されるためです。たとえば、http://hr_conn/My_WebService1.wsdlはhttp://hr-conn/My_WebService1.wsdlに変換されます。
対処方法として、次のいずれかを実行します。
生成されたスタブを手動で編集して、アンダースコアをハイフンに置き換えます。"m_smr.mapTypes(..."で始まる、ターゲット名前空間を含む行を探して、名前空間のアンダースコアをハイフンに変更します。
Webサービスを生成した後、デプロイする前に、WSDLドキュメントを手動で編集して、ターゲット名前空間のアンダースコアをハイフンに置き換えます。次に、サービスをデプロイします。最後に、スタブをWebサービスではなくWSDLドキュメント(ナビゲータのWEB-INF.wsdlノードの下)から直接生成します。
(4070841)UDDIレジストリでWebサービスのコンテキスト・メニューから「レポートの表示」を選択すると、選択したWebサービスに関する情報ページで、JAロケールのすべてのマルチバイト・キャラクタが文字化けして表示されます。これは表示の問題であり、次の対処方法によって回避できます。
コマンドcd <DevSuiteHome>/jdev/lib/<J2SE_Install>/bin/jar xvf jdev.jar oracle/jdevimpl/webservices/uddi/report/uddiservicerpt.xsl
を実行して、レポートのフォーマットに使用するファイルを抽出します。
抽出したファイルをテキスト・エディタで開き、次のコードを変更します。
<xsl:output method="html" />
このエントリを次のように変更します。
<xsl:output method="html" encoding="shift_jis"/>
: Windows、またはUNIXのSJIS環境の場合
<xsl:output method="html" encoding="euc-jp"/>
: UNIXのEUC環境の場合
<JDev_Install>jdev/bin/jdev.conf
を開いて、次のコードを追加します。
AddVMOption -Duddi.serviceReport.Stylesheet=<JDev_Install>/jdev/lib/oracle/jdevimpl/webservices/uddi/report/uddiservicerpt.xsl
この項では、モデル化に関する問題について説明します。
(3421852)ダイアグラムでモデル化されているクラスやインタフェースがあり、「ディスクから削除」を使用して、ナビゲータからそのクラスやインタフェースを削除しても、ダイアグラムには表示されたままになることがあります。この現象が発生するのは、クラスやインタフェースを作成後に保存してからJDeveloperを終了し、JDeveloperの次回起動時に、ナビゲータからクラスやインタフェースを削除したときです。対処方法として、モデル化されたクラスやインタフェースを、ダイアグラムから手動で削除します。
(3100651)ダイアグラムでモデル化されているEJBがあるときに、モデル化されたEJBのコンテキスト・メニューから「ディスクから削除」を選択しても、EJBはナビゲータに表示されたままになります。これを削除するには、EJBを選択し、パッケージから「ファイル」→「削除」を選択します。ダイアグラムでモデル化されているEJBがあるときに、ナビゲータでそのEJBに対して「ディスクから削除」を選択しても、モデル化されたEJBは表示されたままになります。これを削除するには、EJBを選択し、コンテキスト・メニューから「ディスクから削除」を選択します。
対処方法として、EJBを削除する前にダイアグラムを閉じてから、ナビゲータでEJBを削除します。
(3431254)ダイアグラムでモデル化されている制約を定義された要素がある場合に、制約を削除せずに要素を削除すると、「ダイアグラムに追加」ダイアログの「制約」ノードを開けなくなります。
(3495725)「ツール」→「リファクタ」で、ダイアグラムのJavaクラスの名前をパッケージ名に変更すると(例、mypackage1.JavaClass1からmypackage1への変更)、ダイアグラムの別のクラスをモデル化しようとしたときにエラーが表示されます。このエラーが発生しないようにするには、モデル化されたクラスを、パッケージ名と同じ名前に変更しないでください。
この項では、チーム・ベースの開発に関する問題について説明します。
(3075917)CVS接続のルート値のリポジトリ・フィールドにドライブ文字を指定するときは、次のように、ドライブ文字の後に2つのスラッシュが続く表記は使用できません。
d//cvshome
かわりに、リポジトリの先頭にスラッシュを1つ使用します。
/d//cvshome
またはドライブ文字の後にコロンを使用します。
d:\cvshome
(2624464)Oracle9iASサーバーへのWebDAV接続でファイルをロックする場合、JDeveloperを使用してそのファイルをロック解除することはできません。
(3998099)Oracle SCMでバージョン履歴を開くと、CDR-17043およびSQLエラーが発生することがあります。現在、この問題への対処方法はありません。
この項では、JDeveloperとUNIX固有の問題について説明します。
LinuxシェルでのCodeCoach起動は、セミコロン(;)を誤って解析することによって失敗する可能性があります。Linuxシェルはセミコロンをコマンド・セパレータと解釈しますが、CodeCoachオプションの中には、(-Xcc:incl:<packagelist>や-Xcc:excl:<packagelist>のように)セミコロンをリスト・セパレータとして使用するものもあります。このようなオプションは、二重引用符で囲みます。次に例を示します。
/java/jdk1.4.2_03/bin/Java -ojvm -Xcodecoach -Xcc:new -Xcc:level:4 -Xcc:disable:ALL -Xcc:enable:ALL "-Xcc:excl:com;Java;javax;sun;sunw;org;oracle" -classpath /home/fred/JDev9.0.5/jdev/mywork/Workspace1/Project2/classes:/home/Fred /JDev9.0.5/jdev/lib/jdev-rt.jar mypackage2.Application1
JDeveloperのLinuxインストールでは、OJVMが提供されます。OJVMは、JDeveloperとともにインストールできますが、この構成はOracleではサポートされていません。OJVMはHotSpotと互換性のあるJVMで、JDeveloperのプロファイラ機能とCodeCoach機能で必要とされます。また、高度なデバッグ機能も使用できるようになります。
rootとしてログインし、LinuxシェルからアプリケーションのJ2SEにOJVMをインストールします。
cd <jdev_install>/ojvm_linux_x86 sh installOJVM <j2se_location>
ここで、<jdev_install>はJDeveloperのインストール・ディレクトリ、<j2se_location>はJ2SEフォルダへのフルパスを表しています。
OJVMが正しくインストールされていることを確認するには、次のコマンドを実行します。
<j2se_location>/bin/Java -ojvm -version
この項では、JDeveloperとMacintosh OS Xに関する問題について説明します。
(3762896)ヘルプの使用時にスクロールするときは、スクロール・ボタンではなく、実際のスクロールバーを直接使用する必要があります。これは、Apple Bug 3748025です。
(3761047)コンソール・ウィンドウで、この例外が表示されることがあります。この例外は無害で、JDeveloperにはまったく影響しません。
(3722494)OS Xに付属するJava VMによって、コンソールに診断情報が表示されることがあります。この情報は無害です。
(3728924)他のプラットフォームでは、アクティブな組込みウィンドウが濃い色で強調表示されます。Mac OS Xでは、強調表示されません。
(3757344)JSP/HTMLビジュアル・エディタでは、ドラッグ・アンド・ドロップ操作によって、列または行を再配置できません。
(3760903)OS Xでは、UIデバッガでUIアウトラインが表示されません。
(3895704)OS Xでシングル・ボタン・マウスを使用しているときは、コンテキスト・メニューがポップアップ表示されません。対処方法として、コマンド・キー、[Shift]キー、[-]キーを同時に押すか、またはツー・ボタン・マウスを使用します。
(3896729)一部のダイアログを起動したときに、フォーカスがテキスト・フィールドではなくボタンに設定されます。テキスト・フィールドをクリックしてフォーカスを設定するか、またはタブ移動してから入力します。
(3907098)Web Startアプリケーションを作成する場合、JSPでJNLPファイルを動的に生成するのではなく、静的なJNLPファイルを選択してください。SafariではMIMEタイプが無視され、ファイル拡張子によってWeb Startを起動するかどうかが判断されます。
(3765717)ドッキング可能なウィンドウをフローティングさせると、メニュー・バーが空になります。ウィンドウをIDEに再ドッキングすると、この状況は解消されます。この問題は、Apple Bug 3752818で報告されています。
JDeveloperのクイックJavadoc機能では、クラスのソード・コードへアクセスできることが前提となっています。Mac OS Xでは、src.jarは通常のJavaインストールの一部ではなく、Developer Toolsパッケージの一部になっています。このファイルは、JDKクラスのソースをクイックJavadocで使用するために必要です。
(3845763)Mac OS Xでは、パレットのドラッグ・アンド・ドロップ操作を実行できません。パレット項目を選択して、ビジュアル・デザイナでコンポーネントを表示する場所をクリックする必要があります。
この項では、JDeveloperとスクリーン・リーダーに関する問題について説明します。
JDeveloperとJAWSの連携動作を設定する場合は、インストレーション・ガイドの手順に従って、次のサイトからaccessbridge-1_2.zipをダウンロードしてください。
http://java.sun.com/products/accessbridge/
オンライン・ヘルプにあるスクリーン・リーダーの設定手順では、accessbridge-1_1.zipのダウンロードが推奨されていますが、これはAccess Bridgeの最新バージョンではありません。この手順は、Java Access Bridge 1.2が提供される前の情報です。
JDeveloper 10.1.2でJAWS 3.70を使用するときは、次の問題に注意してください。
EJBファインダ・ビュー・オブジェクトのオープン・ウィザードから起動する「拡張」ダイアログには、「オブジェクト」というラベルの付いた編集ボックスがありますが、JAWSでは読み取れません(2565846)。
「新規ギャラリ」ダイアログには使用可能な各オプションのテキストによる説明がありますが、JAWSでは読み取れず、ダイアログのタブ・シーケンスも適用されません(2498024)。
ドロップダウン・リスト・ボックスの値が1つだけの場合、JAWSはその値を読み取れません。JAWS 5.0とAccess Bridge 1.1GAでは、この問題は解決されていますが、断続的に再発する可能性があります(3345137)。
対処方法: この問題が発生する場合は、フォーカスをリスト・ボックスまたはコンボ・ボックスに設定してから[↓]キーを押して、値リストを開きます。その後、項目を読み取ります。
JDeveloper 10.1.2でJAWS 3.70またはJAWS 5.0を使用するときは、次の問題に注意してください。
コンポーネント・パレットからダイアグラム・ツールのJavaビジュアル・エディタに複合オブジェクトをドラッグ・アンド・ドロップするためのキーボード操作([Space])はありません(3682651)。
オフライン表の作成ウィザードのステップ4にある使用可能リストに、キーボード操作([Tab]キー)でナビゲートできません。対処方法: 「すべて移動」ボタンを使用して、リスト項目を「選択済」リスト・ボックスに戻します。それ以降は、ダイアログのタブ順序に「使用可能」リストが含められます(3655901)。
JDeveloper 10.1.2でJAWS 5.0を使用するときは、次の問題に注意してください。
同じフレーム内の重複するUIオブジェクトには、コンテキストがありません。「ツール」→「プリファレンス」→「ビジネス・コンポーネント」→「ベース・クラス」パネル内に、ラベルが重複する複数の編集ボックスがあります(3803044)。
「ツール」→「プリファレンス」→「環境」→「ドッキング可能なウィンドウ」パネルを選択するときに、「プリファレンス」ダイアログにラベルのないボタンがあります(3557870)。
次に示す5つの不具合では、ユーザーがウィンドウにナビゲートまたはフォーカスを移しても、IDEウィンドウのタイトルまたは状態が読み取られません。ダイアログの一部の内容が読み取られることもありますが、ユーザーにウィンドウのタイプ、またビューアが開かれていてアクティブであることが知らされないと、それがどのコンテキストに所属するかわからなくなるため、以降のナビゲーションが困難になります。
- イメージ・ビューアのタイトルおよび状態は、JAWSでは読み取られません(2217088)。- SQLワークシートのタイトルおよび状態は、JAWSでは読み取られません(2217097)。- 表ビューアのタイトルおよび状態は、JAWSでは読み取られません(2217099)。- 順序ビューアのタイトルおよび状態は、JAWSでは読み取られません(2217101)。
ダイアログまたはウィザードの起動時に、コンボ・ボックス(または編集コンボ・ボックス)のコントロールがデフォルトでフォーカス設定されているときは、JAWSがそのコントロールの選択された項目を読み取りません(2057497)。
対処方法: ダイアログまたはウィザードを起動し、JAWSで読取りを終了した後、[Tab]キーを使用してダイアログのタブ・シーケンス順にナビゲートすることで、スクリーン・リーダーに各UIコンポーネントを識別させ、フォーカスがコンボ・ボックスに戻るまで続けます。この時点で、スクリーン・リーダーによって、コンボ・ボックス名、状態および選択された項目が読み取られます。
「新規ギャラリ」ダイアログの各項目に関する説明が記述されたテキスト領域は、JAWSでは読み取られません(2498024)。
JAWS 3.70を使用するときは、次の問題に注意してください。
コンテキスト・メニューは、スクリーン・リーダーによって読み取られません(2718451、2843320、202170)。
ヘルプ・パネルのタイトルは読み取られず、「目次」タブ、「全文検索」タブおよび「索引検索」タブを含むUIコンポーネントのみが読み取られます(3200557)。
IDEウィンドウのグループ・ボックスとしての読取りでは、タイトルは読み取られません。これには、プロパティ・インスペクタ、「サムネイル」ウィンドウ、「データ・コントロール」ウィンドウ、コンポーネント・パレットが含まれます。コンポーネント・リストで移入されていないタイトルの読取りは失敗します。これは、各種のIDEウィンドウを使用する際の一般的な問題です。対処方法: 「表示」メニューのメニュー・オプションを選択してウィンドウにフォーカスを設定すると、それらのメニュー項目の選択時にウィンドウ名が読み取られます(3432531、2498082、3506930)。
警告メッセージ・ボックス、検証メッセージ・ボックス、エラー・ダイアログ(赤い停止記号)などの、IDEの様々な場所にあるビジネス・コンポーネント・メッセージ・ボックスの内容は読み取られません(2465154、2944784、2565846、2573384、2505465、2032707、2032726、2566192、2566202)。
IDEの様々な場所にある一部のコンボ・ボックスでは、ユーザーが次の項目を選択しないと、選択された項目の読取りに失敗します(2936822、2057497、2939382、2939245)。
IDEの様々な場所にある一部の編集ボックスでは、タブ順序シーケンスを使用してフォーカスをUIコンポーネントにリセットしないと、デフォルトの内容が読み取られません(2565938、2939366)。
IDEが提供する各種ウィザードの「初期画面」ステップの説明テキストが、JAWSによって読み取られません(2569119、2942044、2200314、2944263、2944750、2939670)。
IDEが提供する各種ウィザードの各ステップの説明テキストが、JAWSによって読み取られません(2565846、29337544、2937552、2939670、2944792、2942060、2459125、2939186、2939670、2944750、3195732)。
JDeveloperからメモリー・プロファイラなどのJavaスレッドを実行すると、JAWSで障害が発生します(3078996)。
コード・インサイトにアクセスできません。Javaメソッドを表示してコード入力を支援する「JOptionPane」ポップアップ・ダイアログにフォーカスを設定する方法がないためです(2936838)。
「ビュー・オブジェクト編集」ダイアログの「問合せ」パネルでは、JAWSが読取りに失敗したテスト結果が編集ボックスに表示されます(2565599)。
JDeveloperデバッガを起動または停止すると、JAWSで障害が発生します(2936822)。
IDEの様々な場所で、バックグラウンドにあるフォーカスのない項目が読み取られることがあります(2497997)。
IDEの様々な場所で、フォーカスを変更するたびに説明テキストが繰り返され、過剰発話になったり、値が何度も繰り返されることがあります(3659804)。
コンテキスト・メニューの「新規」および「詳細」は、JAWSでは読み取られません(3928664)。
「セッションの名前変更」ダイアログは、JAWSでは読み取られません(3928653)。
JAWS 5.0を使用するときは、次の問題に注意してください。
Jdialogの静的テキストは、ダイアログが初めてフォーカスを取得したときだけでなく、ユーザーがコントロール間をタブ移動するたびに読み上げられます。この場合、コントロール名やオプション・ラベルに加えて、説明テキストが読み上げられます。この現象はJDeveloperの一部のダイアログで発生します。たとえば、Webサービスの検索ウィザードには、チェック・ボックスやラジオ・ボタンなどの複数のコントロールを持つグループ・ボックスがあります(3663546)。
Windowsのシステム・メニューでは、ショートカット・キーやキーボードの組合せを使用してコントロールを選択したときなどに、不適切なタイミングでフォーカスが取得されることがあります。対処方法として、[Esc]キーを2度押してから、キーボードを使用してダイアログのナビゲートを続けます(JDeveloper Bug 3686207、JAWS Bug 3670196)。
JDeveloper 10.1.2とJAWS 5.0を使用しているときは、コンテキスト・メニューのサブメニュー項目が読み取られません(JDeveloper Bug 3672967、JAWS Bug 3686135)。
JAWSがツールチップを読み取るよう構成されていても、EWTツールチップは読み取られません(JAWS Bug 3163530)。
EWTグリッドでの編集時には、JAWSによって前の列、行、列値および編集済のセル値が読み取られることがあります。編集後に[Tab]キーを押すと、コミットされた値が読み取られます(JAWS Bug 3163516)。
EWTグリッドでは、[Space]を押してもチェック・ボックスを選択できません。この問題への対処方法はありません(JAWS Bug 3163469)。
チェックリストのJavaコンポーネントでは、JAWS 5.0はチェック・ボックスを認識または読み取りません。Webサービスの作成ウィザードのチェックリストにあるJavaコンポーネントはリスト・コントロールで、ユーザーは各リスト項目の横にあるチェック・ボックスを使用して、その行を選択します。JAWSでは、チェック・ボックスが認識されないため、チェックリストの各行は単純なリスト項目として読み取られます。また、最新バージョンのアクセス・ブリッジ(AccessBridge_1.2_GA)を使用する場合、チェックリストの各種の実装で正常な読取りができなくなります。中には、チェックリスト項目から、チェック・ボックス情報(チェック・ボックス名やチェック・ボックスが選択または選択解除されているかどうかなどを示す状態)のみが読み取られるものもあります。別のチェックリスト実装では、リスト項目情報(リスト・ボックス名やリスト項目)のみが読み取られ、チェック・ボックス情報は読み取られないことがあります。この問題への対処方法はありません(JDeveloper Bug 3663621、JAWS Bug 3692427)。
この項では、JDeveloperに関するその他の問題について説明します。
第6.18.2項「パスにJDK 1.5\JRE\BINを指定してJDeveloperを起動すると、クライアントVMを使用してデバッグできない(4502080)」
第6.18.3項「JDeveloper 10.1.2.0.0から10.1.2.1.0にライブラリ定義をアップグレードする際の問題」
第6.18.8項「HEADタグ内の記述のサイズが大きいと、JSP/HTMLエディタでファイルのエンコーディングを正しくデコードできないことがある」
JDeveloperを使用してアプリケーションをデプロイする際、エラー・メッセージcheckIsLocalHost() error:
が表示されることがあります。このメッセージは無視しても問題なく、全体的なデプロイ・プロセスに影響しません。
WindowsでJDeveloperを起動するときに、パスにjdk1.5\jre\binが指定されている場合は、JDK1(JDeveloper 10.1.2でのデフォルトJDK)のデバッガをHotSpot JVM(hotspot、クライアントまたはサーバー)とともに使用できません。HotSpot JVMを使用してJDK1.4でデバッグしようとすると、次のエラーがログ・ウィンドウに表示されます。
FATAL ERROR in native method: No transports initialized Transport dt_socket failed to initialize, rc = 509.
このエラーは、デバッグ・プロセスがdt_socket.dllを検索し、JDK1.4バージョンのDLLのかわりにJDK1.5バージョンのDLLを、パスのjdk1.5\jre\binディレクトリから検出したことによって発生します。OJVMとデバッガを併用した場合は、OJVMではdt_socket.dllが使用されないため、このエラーは発生しません。
この問題を回避するには、次の対処方法のいずれかを使用します。
JDeveloperを起動する前にjdk1.5\jre\binをパスから削除します。
デバッグするときはOJVMを使用します。これは、「実行」パネルの「プロジェクト・プロパティ」ダイアログ・ボックスで指定します。
(4148838)JDeveloper 10.1.2.0.0で独自のライブラリ定義を作成し、そのライブラリにEL JARファイル(commons-el.jar、jsp-el-api.jarおよびoracle-el.jar)を手動で追加してJDeveloper 10.1.2.1.0でコンパイルまたは実行すると、NoClassDefFound
エラーが表示されることがあります。$DevSuiteHome/jakarta-commos-el/
ではなく、新しい場所の$DevSuiteHome/jlib/
にあるJARファイルを指すようにライブラリ定義を修正します。
(3891954)UMLクラス・エディタの使用中に[Alt]キーを押しながら[Tab]キーを押すか、またはマッピング・エディタを開いたままで構造ペインをクリックすると、NULLポインタ例外のjavax.swing.SwingUtilities.getWindowAncestor(SwingUtilities.java:63
を受け取ることがあります。この現象はめったに発生しませんが、JDKの不具合が原因です。この不具合は、JDK 1.4.2_05以降では修正されています。
Windows XP Service Pack 2でJDeveloperまたはOC4Jを初めて実行するときは、Windowsのセキュリティ・アラートが表示されます。「ブロック解除」ボタンを1度クリックすると、これ以降、このアラートを受け取ることはありません。
SP2はすべてのポートをブロックします。OC4Jをブロック解除しても、デフォルト・ポートの8888はブロックされたままになります。そのため、外部のOC4J(ポート8888など)を使用するアプリケーションを実行するには、ファイアウォールの例外リストにポート8888を物理的に追加する必要があります。これは次の手順で行います。
ネットワークのプロパティに進み、イーサネット接続を選択します。
「詳細設定」をクリックします。
ファイアウォールの設定をクリックします。
「例外」タブをクリックし、「ポートの追加」をクリックして、ポート8888またはOC4Jで使用するポートとオプションの名前を指定します。
「OK」をクリックして「ネットワーク接続」ウィンドウを閉じます。
(3421004)指定されているtaglibハンドラ・クラスがクラスパスに含まれている場合でも、JSPをメイクまたは実行する際に、次のようなエラー・メッセージが表示されることがあります。
Error(1): java.lang.ClassNotFoundException: Error(1): Unable to load taghandler class:
このエラーは、WEB-INF/libのいくつかのJARファイルに使用していないTLDが含まれていて、その実装ライブラリが該当プロジェクトのクラスパスにない場合に発生します。このエラーは、次のいずれかの方法で解消できます。
WEB-INF/libから使用していないTLDを含むJARファイルを削除します。
WEB-INF/libに含まれるJAR関連のライブラリをすべてプロジェクトのクラスパスに追加します。
「プロジェクト・プロパティ」→「プロファイル」→「実行」→「オプション」で、「プロジェクトのメイク」の選択を解除します。
(2670389)マルチバイト環境でJDeveloperを使用すると、埋込みブラウザで、すべてのマルチバイト文字が四角形で表示されることがあります。この問題は、次のオプションを使用することで解消されます。
AddVMOption -Dice.pilots.html4.ignoreNonGenericFonts=true
(3313918)現時点では、JSP/HTMLエディタは、HEADタグ内のMETAタグ(例、<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=shift_jis"/>)を元にファイルのエンコーディングを認識しています。
JSP/HTMLエディタでは、このようなMETAタグをファイルの先頭から2000バイト以内に記述する必要があります。JSP/HTMLエディタで、JSPまたはHTMLファイルが文字化けしている場合は、METAタグがファイルの先頭から2000バイト以内に正しく記述されているかどうかを確認してください。
データベースからのインポートおよびデータベースへの生成は、Oracle以外のデータベースに対しては保証されていません。