この章では、Oracle JDeveloperに関する問題について説明します。内容は次のとおりです。
このドキュメントの発行時点で利用できない追加情報は、http://www.oracle.com/technology/products/jdev/htdocs/10.1.3.1/index.html
の『Oracle JDeveloper (10.1.3.1.0) Release Notes Addendum』を参照してください。
JDeveloperの詳細および技術リソースは、Oracle Technology NetworkのJDeveloper製品センター(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にデプロイする場合、EJB 3モデル・プロジェクト依存性の結果存在する複数の永続性ユニット定義が原因で次のエラーが発生することがあります。
DeployerRunnable.run[application1:ejb3_mdnav_adffaces] - Multiple persistence units with name "model" are defined at the same scope.oracle.oc4j.admin.internal.DeployerException: [application1:ejb3_mdnav_adffaces] - Multiple persistence units with name "model" are defined at the same scope.
このエラーを回避するには、ViewControllerプロジェクト設定を更新して、スタンドアロンOC4JにADF Webアプリケーションをデプロイする前にモデル・プロジェクトの依存性を削除します。
アーカイブ・ファイルにJDeveloperデプロイメント・プロファイルをデプロイする場合、デフォルトの動作ではアーカイブを標準J2EEとしてデプロイされます。プラットフォーム固有のディスクリプタ処理を組み込むために特定のアプリケーション・サーバー・プラットフォームのファイルにアーカイブをデプロイするには、「デプロイメント・プロファイル」→「プラットフォーム」ページでターゲット接続を設定する必要があります。ターゲット接続は、接続ナビゲータでアプリケーション・サーバー接続を作成した後に、デフォルト(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ステートレスSession Beanを、ステートフルSession Beanに変更する必要があります。
この変更に加えて、生成される次の文を
@Resource EntityManager em;
次のように変更して、
@PersistenceContext(type=PersistenceContextType.EXTENDED)EntityManager em;
Webクライアントが(新しくステートフルになった)Session 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アプリケーションのOracle JDeveloper 10g リリース10.1.3から10.1.3.1への移行」を参照し、「Oracle JDeveloperの開始」→「Oracle JDeveloper 10gへの移行」を選択すると、EJB 3.0アプリケーションをJDeveloper 10.1.3からJDeveloper 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秒以上に増やします。
EJB 3.0 Webサービスを外部OC4Jにデプロイし、Oracle Enterprise Managerからそれをテストしようとした場合、「起動」ボタンが表示されないことがあります。
対処方法はありません。
2つ以上のポートを持つWebサービスにプロキシを作成すると、Webサービスのエンドポイントが無効なプロキシが生成されます。
これに対処するには、WSDLを調査して正しいエンドポイントURLを見つけ出し、生成されたプロキシ・クラスに貼り付けます。
プロジェクトに同じマッピング・ファイルを使用する2つ以上のWebサービスを作成した場合、ランタイム例外が発生します。
対処方法は次のとおりです。
ボトムアップWebサービス生成の場合は、2つ目のWebサービスにまだ存在していないserviceName
引数値を指定します。
トップダウンWebサービス生成の場合は、Webサービスがそれぞれ別のデプロイ用WARに存在し、同じデプロイメント・ディスクリプタが使用されないようにします。
この項では、JavaServer Facesに関する問題とその対処方法について説明します。内容は次のとおりです。
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
(ビュー・コントローラ・プロジェクトのHTMLルートは./public_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インストーラ」)、サーバーがシャットダウンしても「インストールを終了できません
」というエラーが発生します。Oracle Application Server 10.1.2インスタンスに対してADFインストーラを実行する前に、Application Serverインスタンスを停止し、Application ServerのControl Manager(Enterprise Manager)サービスもシャットダウンする必要があります。
リストア機能を使用しても、bc4j.earはOracle Application Server 10.1.3.0.0に再デプロイされませんが、datatags.ear
がbc4j.earと同じものであるため、機能に影響はありません。ただし、必要に応じて、Enterprise Managerコンソールを使用してbc4j.earを手動でデプロイすることができます。