この章では、Oracle JDeveloperに関連する問題について説明します。内容は次のとおりです。
このマニュアルの発行時点で入手できなかった追加情報については、次のURLにある『Oracle JDeveloperリリース・ノート』の追加情報を参照してください。http://www.oracle.com/technology/products/jdev/htdocs/10.1.3.1/index.html
JDeveloperの詳細および技術リソースは、Oracle Technology Networkの製品センター(http://www.oracle.com/technology/products/jdev/101
)を参照してください。
この項では、IDEに関する一般的な問題とその回避方法について説明します。内容は次のとおりです。
CVSNTサーバーに対してJDeveloperの内部CVSクライアントを使用すると、バイナリ・ファイルが破損する場合があります。これを回避するには、JDeveloperでCVSNTのクライアントを使用します。これは、IDE設定の「バージョニング」→「CVS」パネルで構成できます。
この項では、デプロイに関する一般的な問題とその回避方法について説明します。内容は次のとおりです。
JDeveloperでWebサービス注釈付きのEJBセッションBeanをコンパイルすると、パス名の長さがWindowsの制限を超えてしまう場合があります。JDeveloperでのWebサービス・クラス・ファイルのパス名は、アプリケーションのデプロイメント・フォルダのパス(システムが設定し編集不能)、Webサービスのソース・フォルダのパス(システムが設定)、パッケージ名によって指定されるクラス・ファイルのパス(可能なかぎり短い名前をユーザーが設定)の3つの要素を連結して生成されます。
たとえば、次のようなWebサービス・ファイルのパスが作成されます。ここで、パス名のユーザー指定部分は、パッケージ名com.oracle.myapp.ejb.webservice.test
に基づいています。
<JDev_Install>jdev\system\oracle.j2ee.10.1.3.37.58\embedded-oc4j \application-deployments\\current-workspace-app \MyApplication_MyProject\ws-src\com\oracle\myapp\ejb\webservice\test
その結果、次の例外が発生します。
oracle.j2ee.ws.common.tools.api.SeiValidationException: Interface <classname>.SessionEJBBeanPortType: The class could not be loaded from the class path.
この制約を回避するには、EJBセッションBeanを作成する際に入力するパッケージの名前を短縮します。たとえば、前述の例にあるcom.oracle.myapp.ejb.webservice.test
のかわりに、パッケージ名com.oracle.myappを使用すると、規定内の長さのクラス・パスになります。
ADF WebアプリケーションWARファイルをスタンドアロンOC4Jにデプロイする場合、EJB3モデル・プロジェクト依存性の結果存在する複数の永続性ユニット定義が原因でエラーが発生することがあります。
DeployerRunnable.run[application1:ejb3_mdnav_adffaces] - 複数の名前"{1}"の永続性ユニットが同じ有効範囲に定義されています。oracle.oc4j.admin.internal.DeployerException: [application1:ejb3_mdnav_adffaces] - 複数の名前"{1}"の永続性ユニットが同じ有効範囲に定義されています。
このエラーを回避するには、ViewControllerプロジェクト設定を更新して、スタンドアロンOC4JにADF Webアプリケーションをデプロイする前に、モデル・プロジェクトへの依存性を削除します。
アーカイブ・ファイルにJDeveloperデプロイメント・プロファイルをデプロイする場合、デフォルトの動作では、アーカイブを標準J2EEとしてデプロイします。プラットフォーム固有のディスクリプタ処理を組み込むために、特定のアプリケーション・サーバー・プラットフォームのファイルにアーカイブをデプロイするには、「Deployment Profiles - プラットフォーム」ページで「ターゲット接続」を設定する必要があります。「ターゲット接続」は、接続ナビゲータでアプリケーション・サーバー接続を作成した後に、デフォルト(J2EE)以外にのみ設定できます。
この項では、データベースに関する問題とその回避方法について説明します。内容は次のとおりです。
Oracle Liteリリース10.2.0.2は、列定義に対する標準JDBCメタデータをサポートしていないため、EJBエンティティを作成できません。この問題は、Oracle Lite 10.2.0.3で解決される予定です。
この項では、モデリングに関する問題とその回避方法について説明します。内容は次のとおりです。
UMLアーチファクトが含まれるナビゲータ・パッケージの場合、アプリケーション・ナビゲータのポップアップ・メニューから「リファクタ」サブメニューが表示されます。ただし、パッケージをリファクタしてもUMLアーチファクトはリファクタされませんが、Javaおよびその他のタイプはリファクタされます。
JAWSスクリーン・エディタを使用している場合は、現在Javaモデラーのポップアップ・コード・エディタにアクセスできません。これを回避するには、ダイアグラムのJava要素については、「編集」ではなく、「ソースへ移動」を起動します。
この項では、Toplinkに関する問題とその回避方法について説明します。内容は次のとおりです。
マルチバイト・キャラクタを使用した名前のデータベース表をインポートする場合は、JDeveloperのエンコーディングをUTF-8に変更する必要があります。
「ツール」→「プリファレンス」→「環境」を選択します。
「エンコーディング」をUTF-8に変更します。
JDeveloperを再起動してから表をインポートします。
この項では、EJBに関する問題とその回避方法について説明します。内容は次のとおりです。
10.1.3.1では、エンティティの永続性コンテキストのライフ・スパンは、関連のトランザクションのライフ・スパンに厳密に結び付けられています。そのため、永続性コンテキストのタイプのデフォルトはPersistenceContextType.TRANSACTION
です。
この要件はJDeveloper 10.1.3では緩く、一致していないこの要件に依存しているアプリケーションもありました。
JDeveloper 10.1.3.1の厳密な要件の下で運用するには、JDeveloper 10.1.3から移行され、Webクライアントと対話するEJB 3.0ステートレス・セッションBeanを、ステートフル・セッションBeanに変更する必要があります。
この変更に加えて、生成される次の文
@Resource EntityManager em;
を次のように変更する必要があります。
@PersistenceContext(type=PersistenceContextType.EXTENDED)EntityManager em;
これにより、Webクライアントが(新しくステートフルになった)セッションBeanから返されたエンティティに対して、追加の操作を実行できるようにします。
EJB 3.0ランタイムは、JDeveloper 10.1.3とJDeveloper 10.1.3.1では異なります。JDeveloper 10.1.3で作成されたEJB 3.0アプリケーションは、Oracle Application Server 10.1.3でのみ動作します。また、JDeveloper 10.1.3.1で作成されたEJB 3.0アプリケーションは、Oracle Application Server(SOA)10.1.3.1でのみ動作します。
EJB 3.0アプリケーションをJDeveloper 10.1.3からJDeveloper 10.1.3.1に移行するには、オンライン・ヘルプの「Oracle JDeveloperスタート・ガイド」→「Oracle JDeveloper 10gへの移行」を参照して、EJB 3.0アプリケーションのOracle JDeveloper 10gリリース10.1.3から10.1.3.1への移行に関するトピックの手順に従ってください。
この項では、Webサービスに関する問題とその回避方法について説明します。内容は次のとおりです。
SOAP 1.2バインディングを含むWSDLからトップダウンでWebサービスを作成し、そのサービスをWebサービス・エディタで編集した場合、バインディングがSOAP 1.1に変更されます。
これを回避するには、Webサービス・エディタのダイアログで、「SOAP 1.1バインディング」の選択を手動で解除し、かわりに「SOAP 1.2バインディング」を選択します。
一方向操作のトップダウンWebサービスを作成し、Webサービス・エディタを使用してサービスを変更するか、「ソースからWebサービスを再生成」を起動すると、一方向操作が双方向操作に変更されます。
これを回避するには、Webサービス・エディタのダイアログで、「一方向操作をVoidメソッドから作成」チェック・ボックスを手動で選択します。
列挙型を使用したトップダウンWebサービスWSDLを作成した場合、その後Webサービス・エディタでサービスに対して加えた変更は、検証でエラーが発生するためコミットできません。
InitParamまたはヘッダー(あるいはその両方)を使用するWebサービス・ハンドラを作成し、その後ハンドラを編集し、InitParamまたはヘッダーを削除した場合、JDeveloperにエラー・メッセージが表示されます。
これを回避するには、ハンドラを削除し、初期パラメータを使用せずに再作成します。
信頼性が有効になっているWebサービスに対してプロキシを実行すると失敗し、HTTPアナライザを使用して調査すると、サーバーから本体が空のSOAPメッセージが返されます。これは、プロキシ信頼性ウィザードの「操作設定」タブの「有効期間」のデフォルト値が原因で発生します。
これを回避するには、「有効期間」を2秒以上に増やします。
EJB3.0 Webサービスを外部OC4Jにデプロイし、Oracle Enterprise Managerからそれをテストしようとした場合、「起動」ボタンが表示されないことがあります。
これには回避方法がありません。
2つ以上のポートを持つWebサービスにプロキシを作成すると、Webサービスのエンドポイントが無効なプロキシが生成されます。
これを回避するには、WSDLを調査して正しいエンドポイントURLを見つけ、生成されたプロキシ・クラスに貼り付けます。
プロジェクトに同じマッピング・ファイルを使用する2つ以上のWebサービスを作成した場合、ランタイム例外が発生します。
回避方法は次のとおりです。
ボトムアップWebサービスの場合は、2つ目のWebサービスにまだ存在していないserviceName
引数値を指定します。
トップダウンWebサービスの場合は、Webサービスがそれぞれ別のデプロイ用WARに存在し、同じデプロイメント・ディスクリプタが使用されないようにします。
この項では、JavaServer Faces(JSF)に関する問題とその回避方法について説明します。内容は次のとおりです。
JDeveloper 10.1.3.1では、JavaServer Facesリファレンス実装バージョン1.1_02にアップグレードされます。Sun社から提供されるJSFランタイムのこのメンテナンス・リリースでは、./WEB-INF
ディレクトリ(またはその下のサブディレクトリ)にあるJSFページを処理しないようにする新しい制約が導入されています。JSFアプリケーションにWEB-INF
ディレクトリのページが含まれている場合は、それらのページをWebルートの下でWEB-INF
以外のディレクトリに移動して、それらが正しく機能するようにする必要があります。JSFページでADFモデル・データ・バインディングを使用している場合は、JSP/JSPXページを./WEB-INF
ディレクトリ(またはそのサブディレクトリ)からWebルートの下の新しいディレクトリに移動した後に、変更をDataBindings.cpxファイルの<pageMap>セクション内のpathの値に反映する必要があります。たとえば、ページの以前のpath値が/WEB-INF/page/Test.jspx
であり、このTest.jspxページを/public_html/page/Test.jspx
(./public_html
は、ビュー・コントローラ・プロジェクトのHTMLルート)に移動した場合は、パスの値を編集して/WEB-INF/page/Test.jspx
から/page/Test.jspx
に変更する必要があります。
この項では、ドキュメントの訂正箇所を示します。内容は次のとおりです。
JAZNMigrationToolには、あるストアからLDAPディレクトリにロード可能な別のストアにコンテンツを移行する方法が用意されています。使用するコマンドは次のとおりです。
java JAZNMigrationTool -D binddn -w passwd [-h ldaphost] [-p ldapport] [-sf filename] [-df LDIF_filename] [-sr source_realm] [-dr dest_realm] [-m policy|realm|all] [-help]
すべてのユーザー、ロールおよびJAASポリシーをembedded-oc4j\config\system-jazn-data.xmlからj2ee\home\config\system-jazn-data.xmlに移行する例は、次のとおりです。
set CLASSPATH=JDEV_HOME\j2ee\home\jazn.jar;%CLASSPATH%JDEV_HOME\jdk\bin\Java oracle.security.jazn.tools.JAZNMigrationTool -w welcome -sf JDEV_HOME\jdev\system\oracle.j2ee.xxxx\embedded-oc4j\config\system-jazn-data.xml -df JDEV_HOME\j2ee\home\config\system-jazn-data.xml -dt xml
ここでは、JDEV_HOMEは、JDeveloperがインストールされているディレクトリです。XXXXは、最終ビルド番号を表します。
詳細を調べるには、Java JAZNMigrationTool -help
を発行してください。
JDeveloperでOracle Application Server 10.1.2インスタンスに対してADFインストーラを実行すると(「ツール」→「ADFインストーラ」)、サーバーが停止しても、「インストールを終了できません」
というエラーが発生します。Application Serverインスタンスを停止し、Oracle Application Server 10.1.2インスタンスに対してADFインストーラを実行する前に、Application ServerのControl Manager(Enterprise Manager)サービスも停止する必要があります。
リストア機能を使用しても、bc4j.earはOracle Application Server 10.1.3.0.0に再デプロイされません。datatags.ear
がbc4j.earと同じであるため、機能には影響ありません。ただし、必要な場合は、Enterprise Managerコンソールを使用して、bc4j.earを手動でデプロイします。