Developer Tools
JDeveloper
最終更新日:2011年5月6日
このドキュメントでは、このリリースに対する既知の問題について説明します。 新しい問題は発見され次第ドキュメントに追加されます。是非フィードバックをお寄せください。お客様のご意見が製品の改良につながります。 OTNのJDeveloper community discussion forumでは、製品に関する質問をして、回答を得ることができます。また、製品に関するご意見もお 待ちしております。
各種プラットフォームに対するシステム要件とインストール手順について、詳しくは『installation guide』を参照してください。
Mac OSにOracle JDeveloperをインストールする場合、インストレーション・ガイドに記載された事項以外に追加の手順を実行する必要があります。 Mac OS XへのJDeveloperのインストールについて、詳しくは『インストレーション・ガイド』(http: //download.oracle.com/docs/cd/E16340_01/install.1111/b55912/toc.htm)を参照し てください。
1. デフォルトVMとしてJava 6を設定します。
2. classes.jarに対するシンボリック・リンクを作成します。
Java for Mac OS X 10.5 Update 4がインストールされているMacシステム上でアプリケーションを実行するには、もう1つ追加手順を実行する必要があります(8681385)。
インストール後に初めてJDeveloperを起動した際、XSLTファイルの設計時機能 (実行やデバッグなど)が機能せず、次のメッセージが表示されます。
java.lang.IllegalStateException
Exception firing mainWindowOpened to oracle.jdevimpl.runner.xslt.XSLTRunnerAddin@46b9979b
java.lang.IllegalStateException: getInstance was called while _instance was null
回避策は、JDeveloperの再起動です。
XSLTのデバッグ中に、JDeveloperのロックアップが発生することがあります。
"AWT-EventQueue-1" prio=6 waiting
java.lang.Object.wait(Native Method)
java.lang.Object.wait(Object.java:485)
com.sun.tools.jdi.TargetVM.waitForReply(TargetVM.java:281)
com.sun.tools.jdi.VirtualMachineImpl.waitForTargetReply(VirtualMachineImpl.java:1015)
com.sun.tools.jdi.PacketStream.waitForReply(PacketStream.java:51)
com.sun.tools.jdi.JDWP$StackFrame$GetValues.waitForReply(JDWP.java:6967)
com.sun.tools.jdi.StackFrameImpl.getValues(StackFrameImpl.java:218)
com.sun.tools.jdi.StackFrameImpl.getValue(StackFrameImpl.java:185)
oracle.jdevimpl.debugger.jdi.DebugJDIVariableInfo.getLocalVariableValue(DebugJDIVariableInfo.java:137)
oracle.jdevimpl.debugger.jdi.DebugJDIVariableInfo.getDataInfo(DebugJDIVariableInfo.java:223)
oracle.jdevimpl.runner.debug.DataItem.setInfo(DataItem.java:179)
oracle.jdevimpl.runner.debug.DataItem.
oracle.jdevimpl.runner.debug.DataItem.
oracle.jdevimpl.runner.debug.LocalsController.addDataItems(LocalsController.java:504)
回避策は、JDeveloperを再起動し、デッドロックが発生しているブレーク・ポイン トを削除することです。
Oracle Databaseへの接続方法として推奨されているのはシン・ドライバを使用する方法ですが、次の手順に従うことでOCI8を使用して接続することもでき ます。
オフライン・データベース・オブジェクトを含むアプリケーションをJDeveloper 10.1.3から移行する場合、メッセージ・ログ内に1つ以上の警告メッセージが表示されます。
oracle.jdevimpl.offlinedb.browser.DBObjectFileWrapper getProvider
WARNING: Offline Database file does not exist for file filename [offlineObjectType]
このバージョンではオフライン・データベースの処理方法が異なるためにこのメッセージが表示されますが、無視しても問題ありません。
JDeveloperは使用するクラスパスや JDKを決定する際、CLASSPATHまたはJAVA_HOMEの値を参照するのではなく、専用の場所に保管された情報を使用します。 しかし、WebLogicドメインのインストール・スクリプトは、提供されたCLASSPATH変数とJAVAHOME変数の値を拡張するので、 JAVAHOMEの値に')'が含まれる場合や、CLASSPATHの値に空白が含まれる場合、WebLogicドメインの作成処理が失敗します。 前者に当てはまるのは、たとえば32ビットのJDKがデフォルト・パス(例:C:\Program Files (x86)\Java\jdk1.6.0_18)にインストールされている場合です。また後者に当てはまるの は、Apple QuickTimeなどのアプリケーションがCLASSPATH環境変数に追加されている場合です(例:CLASSPATH=.;C:\Program Files (x86)\QuickTime\QTSystem\QTJava.zip)。
上記のいずれの場合にも、統合WebLogic Serverドメインの作成は失敗し、次のようなメッセージが表示されます。
[waiting for the server to complete its initialization...]
\Java\jre6\lib\ext\QTJava.zip was unexpected at this time.
Process exited.
回避策は、')'が含まれないパスにJDKを インストールし、Apple QuickTimeエントリをクラスパスから除外してから、JDeveloperを再起動することです。
JDeveloperを使用して配置されたJAX-RPC Webサービスを、Oracle Containers for J2EE(OC4J)からOracle WebLogic Server 10.3.xへアップグレードする場合、次の警告メッセージが表示される場合があります。 このメッセージは、OC4J Webサービスのコード内に空白または改行文字が含まれる場合に表示されます。 この警告は無視しても問題ありません。
WARNING: A Text node was set to a value that is all whitespace. The DOM will be out of sync with the Text Buffer. The Text Node on reparse will also be removed from the DOM.
同じスキーマを使用する場合を除いて、複数のトップダウンWebサービスを同じプロジェクト内に作成することは避けてください。これは、後続の トップダウン・サービスが同じパッケージ内に生成されると、前のサービスが作成したObjectFactoryクラスが上書きされる可能性があるためで す。
HTTP Analyzerから対話型Webサービスを呼び出す場合、'continue'メソッドに対するリクエスト・メッセージのヘッダーを手動で更新し、特定 の対話に固有の対話IDを指定する必要があります。 この値は、対話を開始するメソッドのレスポンスSOAPメッセージから取得できます。
対話開始メソッドのレスポンス・メッセージから、次のようなXMLタグをコピーします。
<conv:ContinueHeader xmlns:conv="http://www.openuri.org/2002/04/soap/conversation/">
<conv:conversationID>uuid:701f9f3d434bfc98:-3f39a0ef:11c4b649fd4:-7fff</conv:conversationID>
</conv:ContinueHeader>
HTTP AnalyzerのHTTP Contentタブで、次のとおりに、SOAPリクエスト・メッセージのヘッダー要素に上記タグを挿入します。
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Header>
<!- other header elements-->
<conv:ContinueHeader xmlns:conv="http://www.openuri.org/2002/04/soap/conversation/">
<conv:conversationID>uuid:701f9f3d434bfc98:-3f39a0ef:11c4b649fd4:-7fff</conv:conversationID>
</conv:ContinueHeader>
</env:Header>
<env:Body>
<!- message data details ->
</env:Body>
</env:Envelope>
以前のJDeveloperリリース(OC4Jをサポートするリリース)で作成されたWebサービスでは、設定されたプロパティの一部に OC4Jの独自性を有するものがあるため、このようなサービスをOracle WLS(JDeveloperにバインドされた統合Oracle WLSを含む)に配置して実行すると問題が発生する可能性があります。 既知の問題としては、注釈、ステートフル・サービス、DIMEエンコーディング、OWSMポリシー(WS-SecurityとWS- Reliabilityを含む10.1.3および11のスタイル)を含むJAX_RPCサービスが挙げられます。
JDeveloperのジェネレータを使用してWebLogicに配置されたJAX-RPC Webサービスを使用すると、"空"の配列型を含むメソッド・シグネチャで問題が発生する可能性があります。
例:public class Hello
Unknown macro: { public String[] list(); public String[] echo(String[] value); public void process(int[] values); }
このようなWebサービスは配置されないか、または配置されても正しく動作せず、マッピングの問題を示すエラーが発生します。 この問題にはいくつかの回避策があります。
WebLogic Serverに配置されたJAX-RPCスタイルの対話型(ステートフル)Webサービスを、JAX-WSスタイルのプロキシ・クライアントから正しく起 動することはできません。 現時点では、提供されたWSDLドキュメントに対話型のbehavior advertisementが含まれていても、設計時にJAX-WSプロキシを作成する際、ユーザーに警告が出されることはありません。 JAX-WSクライアントのアーチファクトがツールで正しく生成された場合でも、このクライアントからサービスを起動すると SOAPFaultExceptionがスローされます。 対話の'開始'メソッドのみが正しく実行されます。 対話の'開始'メソッドに続いてその他の対話型メソッドを起動すると、エラーが発生します。
この問題の回避策は、JAX-RPCスタイルのプロキシ・クライアントを使用して、WebLogic Serverに配置されたステートフル・サービスを呼び出すことです。
10.1.3のSOAに含まれるBPELサーバーで解釈されるのは、'2003ドラフト・バージョンのWS-Addressing仕様の使用法 のみです。 JAX-WS非同期クライアントはWS_ADDR_VER定数を変更することで、デフォルトで、最終版の'2005またはMember Submission '2004のいずれかのバージョンの仕様をサポートするクライアントを生成します。 '2003バージョンをサポートするには、プロセスを正しく起動するために若干のコード変更を行う必要があります。
次に示すとおりに、コールバック・ハンドラ内でrelatesToHeaderを要求するコードを修正します。
// HeaderList ...
//Header relatesToheader = headerList.get(WS_ADDR_VER.relatesToTag, true);
//String relatesToMessageId = ralatesToheader.getStringContent();
String relatesToMessageId = RelatesTo.getValue();
ここでは、メソッド・パラメータに自動的にバインドされるヘッダーを使用します。 現在は、BPELサービスによってWSDL内にReplyToヘッダーとMessageIDヘッダーの両方が明示的に定義されているため、デフォルトのプ ロキシ・ジェネレータはメソッド・パラメータにこれらをマッピングします。 このデフォルト仕様を受け入れる場合、生成されたコードに従って、ReplyToアドレスとメッセージIDの両方をヘッダーではなくパラメータとしてメ ソッドに渡す必要があります。 ここでの唯一の例外はWS-Addressingアクション・ヘッダーであり、このヘッダーが必要になる場合は、'2003の名前空間を使用して設定する 必要があります。 次に、必要な変更を行ったローン・プロセスの起動例を示します。
americanLoan = new AmericanLoan();
LoanService loanService = americanLoan.getLoanServicePort();
// prepare Message Id
AttributedURI messageId = new AttributedURI();
messageId.setValue( "uuid:" + UUID.randomUUID() );
// prepare ReplyTo
AttributedURI address = new AttributedURI();
address.setValue("http://x.x.x.x:7101/Application23-Project1-context-root/LoanServiceCallbackPort");
EndpointReferenceType replyTo = new EndpointReferenceType();
replyTo.setAddress( address );
// prepare action header
WSBindingProvider wsbp = (WSBindingProvider)loanService;
wsbp.setOutboundHeaders(
new StringHeader(
new QName( "http://schemas.xmlsoap.org/ws/2003/03/addressing", "Action" ),
"http://services.otn.com/LoanService/initiateRequest" ));
// Prepare payload
LoanApplicationType payload = ...
// Invoke service with replyTo and messageID parameter
loanService.initiate(lt, replyTo, messageId);
SpringのBean定義を編集する際、誤ってインターネットからファイルをダウンロー ドしようとするコードによってハングが発生する可能性があります(具体的にはdatatype.dtd)。Springツールを使用する場合は、アクティ ブなネットワーク接続が必要です。
Team Productivity Centerのインストーラを使用した場合、Oracle Technology Networkにホストされているコネクタのうち、互換性のあるバージョンが取得されません。
回避策:
winzipまたは7-zipを使用して、tpcinstaller.jarを開きます。
META-INFフォルダを展開し、installer.xmlファイルを探します。
このファイルを編集し、次の行
<entry key="VersionPrefix">11.1.1.4.37</entry>
を次のように変更します。
<entry key="VersionPrefix">11.1.1.5.37</entry>
installer.xmlファイルとtpcinstaller.jarファイルを保存します。
Team Productivity CenterサーバーがTomcatを使用してインストールされている場合、このサーバーを開始できません。
回避策:
上述の回避策が適用されていることを確認します。
JDeveloper Studioバージョンがインストールされていることを確認します。
Tomcatサーバーに対してインストーラを実行します。
インストールが完了したら、いったんTomcatサーバーを開始し、停止します。
新しくインストールしたJDeveloperフォルダへ移動し、"modules"フォルダ(例:C:\JDeveloper11.1.1.5\ modules)を探します。
"org.eclipse.persistence_1.1.0.0_2-1.jar"という名前のファイルをコピーします。
Tomcatサーバーのwebappsディレクトリへ移動し、otpcが使用しているlib(例:C:\Program Files\apache-tomcat-7.0.12\webapps\otpc\WEB-INF\lib)フォルダを探します。
"org.eclipse.persistence_1.1.0.0_2-1.jar"ファイルを貼り付けます。
Tomcatを再起動します。
データを含むOracle Application Development Framework(Oracle ADF)の表コンポーネントのプレースホルダ行に対して、Excel検証機能が適用されません。
Oracle ADFdiの表コンポーネントの1つ以上の列に対してExcelの"データ検証"ルールが適用されている状態で、
ユーザーがデータをダウンロードし、ヘッダー行の下に新しい行を挿入する場合、新しい行にはExcelデータ検証が適用されません。
また、ワークブックの開発者が同じ手順をテスト・モードで実行してからデザイナに戻ると、データ検証ルールがすべて消失しています。
この問題の回避策は、列ヘッダーのすぐ下に行を挿入せずに、 表の中央のどこかや末尾に新しい行を挿入することです。
この時点で、予期せぬ例外が発生します。
この問題の回避策は、エラー・ダイアログを閉じ、表からフィルタを削除することです。
その後で、再度「Stop」ボタンをクリックして設計時モードに戻ります。
Microsoft Excelでは、ユーザーがキーボードからコンテキスト・メニューを起動すると"before right click"イベントが呼び出されません。 セルのコンテキスト・メニューを起動する際、ユーザーはキーボードとマウスの右クリックのいずれかのみを使用する必要があります。 同じユーザー・セッションで両方を使用することは避けてください。
この現象は、統合されたExcelワークブックで設計時と実行時に発生します。
Oracle ADF Desktop Integrationでは、ExcelのHome→Conditional Formattingをクリックすることで使用できる条件付き書式設定はサポートされていません。
この問題の回避策は、コンポーネントのスタイル・プロパティ内のOracle ADFdiの式とExcelの名前付きスタイルを組み合わせて使用することです。
Oracle ADFの表コンポーネントのアップロード処理中に、一定の条件下で予期せぬエラーが発生する場合があります。 アップロード処理では、複数の行がバッチ処理されます。 バッチから取得した変更をポストした後で、Oracle ADFdiはCommitBatchActionIDによって指定されたアクションを実行します。 コミット・アクション中にエラーが発生すると、レコードにエラーが含まれていない後続バッチに対してもコミット・アクションのエラーが報告され続ける場合 があります。 (Bug 8262587)
原因:コミットに失敗した場合、CommitBatchActionIDが呼び出された際 に存在している保留中のモデル変更が自動的に元に戻らないためです。
この問題の回避策は、保留中のモデル変更へのコミットを最初に試みた CommitBatchActionIDに対してカスタム・アクションを作成することです。 コミット中に例外が発生した場合、カスタム・メソッドは最初に保留中のモデル変更をロールバックする必要があります。こうすることで、後続のバッチによる コミット処理を正しく完了できます。 注:期待したとおりにコミット・エラーがクライアントに報告されるようにするため、ロールバックした後にコミット例外を再度スローすることが重要です。
Oracle ADFdiは、variableUsage構文を使用して宣言されたページ定義での変数をサポートしていません。
Oracle ADFdi関連のページ定義でvariableUsageが作成されると、実行時にサーバーでNullPointerExceptionsが生成されま す。
この問題の回避策は、ページ定義で<variable>要素を使用して変数を作成することです。
Oracle ADFdi Designerのプロパティ・インスペクタ機能と式ビルダー機能が、保存されたコンポーネント・メタデータから削除されています。 その結果、新しいオブジェクトや値を処理する際にいくつかの問題が発生することが確認されています。 この問題に対する回避策は、オブジェクトを保存し、もう一度開くことです。
問題の例:
設計時に、一部のプロパティ・インスペクタから"Collection Editor"にアクセスできます(Bug 8254551)。
たとえば、Workbookプロパティには"Branding Items"が含まれています。 この項目はポップアップのCollection Editorで編集できますが、このCollection Editorから既存の項目を変更してCancelボタンをクリックしても、コレクションに対する変更が期待したとおりには取り消されません。
この問題の回避策は、親プロパティ・エディタを取り消すことで、Collection Editorでの望ましくない変更を取り消すことです。
ADFDI-00134: An attempt to connect to the web application has failed.
解決方法:Internet Explorerを使用して、同じアプリケーションからWebページへ移動します。 このアクションによって証明書がローカルにインストールされ、その後に試行される統合されたワークブックの使用で問題は発生しません。
Oracle ADFの読取り専用表コンポーネントを使用する際、次の既知の問題が発生する可能性があります。
このような問題を回避するには、Oracle ADFの表コンポーネントを読取り専用設定にして使用することを検討してください。
要約:ワークブックの開発者がExcelのビュー・モードから"ページ・レイアウト"に切り替えると、Oracle ADFのボタン・コンポーネントが想定外の位置にレンダリングされる場合があります(Bug 7482216)。
回避策:Excelを通常の標準ビュー・モードに戻してから、 ワークブックを実行して停止すると、ボタンが正しく再描画されます。
次のイベントの順序に注意してください(Bug 10623397)。
結果:タイムゾーンの違いによって、変更された行に含まれるすべての日時データが変更されたものとみなされます。
分析:Excelでは、日時の値にタイムゾーンという概念が含まれていません。 Oracle ADFdiはサーバーと通信する前に、常にローカル・コンピュータのタイムゾーンを使用して日時の値を調整しています。
この問題の回避策は、ローカル・コンピュータのタイムゾーン設定を変更する前に、保留中の変更をすべてアップロードすることです。
ローカル・コンピュータのタイムゾーン設定を変更したら、何らかの変更を加える前に、必ずワークシート・データを再度ダウンロードしてください。
ブラウザ固有のバグについては、Supported Platforms section(http://jdevadf.oracle.com/adf-richclient- demo/docs/release.html#SupportedPlatforms) のリストを参照してください。
アイコンやイメージをスキニングする場合、URLの最初に付く'/'はコンテキスト関連を 意味し、'//'はサーバー関連を意味します(http: //myfaces.apache.org/trinidad/devguide/skinning.html#urls)。ただし、カレンダー・ツール バー・アイコン(例:af|calendar::toolbar-day-icon)の場合、'/'は使用できず、'//'がコンテキスト関連になりま す。 また、richTextEditorやpanelCollectionのツールバー・アイコン(例:af|richTextEditor::bold- icon、af|panelCollection::freeze-icon)では、'/'と'//'の両方がコンテキスト関連を意味します。 T
JDK1.6で追加された17個の新しいロケールに対して、日時の書式設定(convertDateTimeやinputDateなど)が正し く機能しません。JDK 1.5でサポートされているロケールに対しては、この問題は発生しません。
プロファイル・ファイル・ロガーが使用できるのは、FirefoxブラウザやIEブラウザ上の非ポータル環境のみであり、最低でも 1.5._06のJREがクライアント・マシンにインストールされており、ユーザーのホーム・ディレクトリへの書込み権限を持つ必要があります。 生成されるファイルの形式は事前の告知なしで変更される可能性があり、XMLパーサー・ツールでの使用を目的としたものではありません。 この機能を使用するには、ユーザーが証明書を受け入れる必要があります。
アプリケーション開発者は、メニューにアクセス・キーを割り当てる際、慎重にこれを行う必要があります。 ホット・キーは、各種のブラウザやオペレーティング・システムによってインターセプトされる可能性があります。 たとえば、ALT-Dを使用すると、IEとFireFox 2の両方でアドレス・バーにフォーカスが移動します。このホット・キーに対する参照は、デモから削除されています。 しかし、この他にも多数のホット・キーが制限を受けるため、サポートされるすべてのブラウザでホット・キーのテストを行うことを推奨します。
Oracle ADF Facesコンポーネントでは、アプリケーションでモデルのプライマリ・キーが使用されることを想定しています。このプライマリ・キーは新規レコードに対 して事前移入され、レコードが更新されても変更されません。何らかの理由で、アプリケーションがデータ・オブジェクト内のプライマリ・キーを事前移入でき ず、データ・オブジェクトがtableやtree、またはtreeTablesにバインドされている場合、プライマリ・キー値の変更による潜在的なエラー を回避するために、次の構成を設定する必要があります。
Here is an example:
<af:table value="#{bindings.EmpView1.collectionModel}" var="row"
... partialTriggers="it1">
<af:column sortProperty="Empno" sortable="true"
headerText="#{bindings.EmpView1.hints.Empno.label}"
id="c1">
<af:inputText value="#{row.bindings.Empno.inputValue}"
... autoSubmit="true" id="it1">
<f:validator binding="#{row.bindings.Empno.validator}"/>
<af:convertNumber groupingUsed="false"
pattern="#{bindings.EmpView1.hints.Empno.format}"/>
</af:inputText>
</af:column>
...
<af:column sortProperty="Deptno" sortable="true"
headerText="#{bindings.EmpView1.hints.Deptno.label}"
id="c8">
<af:selectOneChoice value="#{row.bindings.Deptno.inputValue}"
label="#{row.bindings.Deptno.label}"
shortDesc="#{bindings.EmpView1.hints.Deptno.tooltip}"
id="soc1">
<f:selectItems value="#{row.bindings.Deptno.items}" id="si1"/>
</af:selectOneChoice>
</af:column>
</af:table>
コンポーネント・ツリーをレンダリングすると、コンポーネント・ツリーの構造が一時的に変更されるようなページでは、アプリケーション・ ビュー・キャッシュが正しく動作しません。 このようなケースはよくあり、どのような場合に発生するのかをアプリケーション開発者が知ることは不可能であるため、常に USE_APPLICATION_VIEW_CACHEの使用を回避する必要があります。 また、アプリケーション・ビュー・キャッシュによって向上されるのは初期のレンダリング・パフォーマンスのみであり、セッション・サイズは変わりありませ ん。
新規ウィンドウの検出ロジックは、リッチ・クライアント・アプリケーションでのみ正しく動作し、Trinidadアプリケーションでは機能しま せん。Trinidadアプリケーションでは、web.xmlに次のパラメータを追加して、新規ウィンドウの検出ロジックを無効にする必要があります。
<context-param>
<param-name>oracle.adf.view.rich.newWindowDetect.OPTIONS</param-name>
<param-value>off</param-value>
</context-param>
表コンポーネントのEmailable Pageモードには、いくつかの問題があることが確認されています。
Oracle ADF Facesのコンポーネントがaf:forEachまたはaf:iteratorの(サブツリーの)内部に含まれる場合、永続的なカスタマイズはサポート されません。 ただし、反復コンポーネントと反復対象コンポーネントがドキュメントの各所(異なるjsffファイルやjspxファイルなど)に配置されている場合、この ケースは検出されないため、永続的なカスタマイズが可能になります。
IEでのuserDataの永続性動作には制限があるため、最初に保存されたURLとは異なるURLを持つページからアクセスされた場合に、過 去のリクエストに対するuserActivityデータが部分的に、または時として完全に利用できない場合があります。
Oracle ADF Facesのユーザーは、一般に、AF:tableのすべての列に列ヘッダーを指定することで、アクセシブルな表コンテンツを生成します。 しかし、一部の複雑なケース(AF:tableに合計行や小計行が含まれる場合など)において、これらの行のラベルを含むセルがその列の列ヘッダーに対し て不適切に関連付けられる場合があります。 たとえば、列に従業員名が含まれ、列ヘッダーのテキストが"従業員名"である場合、"Total"というテキストを含むセルが"従業員名"として、不適切 にスクリーン・リーダーに認識されます。 混乱を避けるには、このようなセルを列ヘッダーに関連付けないようにします。 Oracle ADF Facesでは、このようなセルの列ヘッダーを対象外にするためのメカニズムを提供していません。
AF:table、AF:tree、AF:treeTableのいずれかとやり取りする際、上矢印または下矢印キーを使用して選択を変更する と、サーバーへのラウンドトリップが発生する場合があります。 Oracle ADF Facesでは、一度に1つのリクエストのみを送信し、リクエストが未処理の間に発生する中間選択状態に対するリクエストを削除することで、ラウンドト リップの数を減らすようにすでに最適化が実施されています。 ただし、リクエスト・キューが解放されるとすぐにリクエストがサーバーに送信されるため、キーボード・ユーザーが現在の動作を非効率だと感じる場合もある でしょう。 理想的には、ユーザーが選択しようとしている項目に達するまで、つまり、ユーザーが短時間キーボード作業を休止するまで、リクエストを送信しないようにす べきです。
現在、読取り専用の入力コンポーネント(AF:inputTextなど)は、Oracle ADF Facesによってプレーン・テキストとしてレンダリングされています。 このため、スクリーン・リーダーのユーザーにとっては意味があるかもしれない情報が失われています。言い換えると、スクリーン・リーダーのユーザーは、対 象のテキストが入力コントロールに対応していることを知る方法がありません。 さらに、プレーン・テキストのコンテンツはタブ・ナビゲーションの順序に含まれていないため、スクリーン・リーダーのユーザーはこの読取り専用コンテンツ がページ上に存在することを認識できない可能性もあります。
1つのページ内で複数のコンポーネントによって同じイテレータ・バインディングが共有され ている場合、アプリケーションはpartialTriggersを使用してUIステータスを同期する必要があります。
1つの例は、同じイテレータ・バインディングに基づくフォームと表であり、表の選択をフォームと同期するには、表のpartialTriggersが フォームのナビゲーション・ボタンを指す必要があります。
WASに固有のHttpServletResponseクラスの実装が原因となって、 MBCS文字を使用してUTF-8でエンコードされたURLのサーバー側リダイレクトが正しく動作しません。 このため、マルチバイト・キャラクタ・セットの名前を持つページにアクセスすると、HTTPエラー404または"リソースが見つかりません"というエラー が表示される場合があります。
JavaScriptライブラリやスタイル シート、イメージなどのOracle ADF FacesリソースのURLにセッションIDが挿入される場合があります。 これは、ユーザーのブラウザでCookieが無効になっている場合や、Oracle ADF Facesアプリケーションに初めてアクセスした場合に発生しますが、この時点でアプリケーション・サーバーは、Cookieが有効になっているかどうか 把握できていません。 これによる機能性への影響はありませんが、セッションIDが存在することで、過去にキャッシュされたリソース・コピーの使用が妨げられるため、若干のパ フォーマンスの問題が発生する可能性があります。 アプリケーションでCookieを使用する必要がある場合、常にCookieを使用してセッションIDを管理するようにアプリケーション・サーバーを設定 することで、セッションIDを含むURLの書換えが防止できます。 たとえば、Oracle WebLogic Serverでは、weblogic.xmlファイルの<url-rewriting-enabled> 要素を使用して、セッションIDによるURLの書換えを制御できます。
この問題は、リージョンを含むポップアップ・コンポーネントを使用しており、 setPropertyListenerタグを使用してリージョンのアクティブ化を設定している場合に発生します。 popupFetchタイプのsetPropertyListenerタグは、初期のコンテンツ配信を確立する初回フェッチで呼び出されません。 これは、setPropertyListenerタグを定義しているMARKUPが、ポップアップの本体に定義されているためです。 子の作成を遅延するオプションを使用した場合、コンテンツが最初にフェッチされるまで本体は処理されません。 ポップアップ・フェッチ・イベントのリスナー(setPropertyListener)はRender Responseフェーズで作成される前に、Apply Request Valuesフェーズで処理されます。 この問題の回避策は、setPropertyListenerを使用して確立されるはずだった状態を、"popupFetchListener"メソッド 式(PopupFetchEventのサーバー側イベント)を使用して確立することです。
あるバグの影響で、コンポーネントのコ レクション・ファミリー(iterator、table、treeTable、tree)に対して、コンポーネント状態が間違った行に表示される場合があ ります。 この問題は、さまざまなユースケースで発生します。
即時イベント以外で検証およびモデル更新が実行されない例には、入力コンポーネントが<af:subform/>で囲まれてい るケースがあります。
<af:iterator id="outer" var="outer" value="#{...}">
<af:iterator id="inner" var="inner" value="#{...}">
<af:inputText id="text" label="Input text" value="#{...}"/>
</af:iterator>
</af:iterator>
この場合、テキスト・コンポーネントが結果的にその他の反復とスタンプ状態を共有する可能性があります。 したがって、外側のイテレータと内側のイテレータに項目が2つずつ含まれている場合、外側の行1と内側の行1は、外側の行1と内側の行1インスタンスと同 じスタンプ状態(送信された値)を共有する結果となります。
この問題を回避するには、次の手順を実行します。
Oracle ADF FacesでJSF 1.2が必要になったため、JDeveloperで指示された場合は、プロジェクトとそこに含まれるファイルをJSF 1.2に移行することを推奨します。 移行しない場合、Oracle ADF Faces DTによって次の変更に対するサポートが引き続き提供されます。
JDeveloperに指示された際に移行を選択すると、これらは自動的に処理されます。
ローカライズした例外をスローするためにJboExceptionを使用する場合、 Oracle ADFは正しいリソース・ファイルからこのプロパティを検索しません。
回避策:次に示したClass PropertyListResourceBundleのコードを適用し、getLocale()から返される値がNULLかどうかをテストします。 NULLである場合、ResourceBundle.getBundle(getBundleName())をコールします。
...
protected Object[][] getContents() {
Locale locale = getLocale();
if (localeContents.containsKey(locale)) {
return (Object[][]) localeContents.get(locale);
}
ResourceBundle rb = null;
if (locale == null)
rb = ResourceBundle.getBundle(getBundleName());
else
rb = ResourceBundle.getBundle(getBundleName(), locale);
...
日本語ロケールでは、AppModuleの右クリック・メニュー項目の 'Configurations...'と'Go to Domain Class'が正しく動作しません。
'Configurations...'メニュー項目の回避策として、「AppModule」をダブルクリックし、AppModule Overviewエディタの「Configurations」タブを選択します。また、"Go to Domain Class"メニュー項目の回避策として、 ドメイン・ノードを開き、javaクラスを表示してから、javaクラスをダブルクリックして直接開きます。
ビジュアル・エディタを開くと、利用できるすべてのツールバー機能が表示されておらず、そ の他にも利用できるツールバー機能があることを示す視覚的表示(...や=>など)もありません。しかし、ウィンドウを横に開くと、すべての機能が 表示されます。
デフォルトのブラウザを使用してビジュアル・エディタからページ・プレビューを表示するに は、次の手順を実行します。
このオプションには、キーボードからアクセスすることはできません。
Faceletsを使用してJSF htmlメッセージ・コンポーネントをページにドロップしようとすると、メッセージを添付するIDを指定するためのダイアログが表示されます。
回避策は、プロパティ・インスペクタを使用して、h:messageの'for'プロパティを変更することです。