ADF Telnet(ADFT)アプリケーションのデバッグは、その他のデスクトップのブラウザ・ベース・アプリケーションのデバッグと類似していますが、一部異なる部分があります。このトピックでは、不具合がアプリケーションADFTまたはIndustrial Telnet Server(ITS)のどちらに問題があるものか、および生成されたデバッグ情報はどこで検索できるかについて説明します。ここでは、IDEを使用したWebアプリケーションのデバッグ方法については説明しません(たとえば、ブレーク・ポイントの設定方法などは扱いません)。
ここでは、ADFおよびADFTアプリケーションの作成およびデプロイ方法、ITSのデプロイおよび構成方法、およびITSに接続するTelnetエミュレータの正しい構成についての知識があることが前提とされます。
ADFTおよびITSの間の通信リンクは、アプリケーション開発のために理解する必要はありませんが、問題を追跡する場合に非常に役立ちます。
ADFTで提供されるレンダーキットでは、Telnetマークアップ言語(TML)と呼ばれるマークアップが生成され、ITSに送信されます。これはデスクトップWebブラウザに送信されるHTMLをコアADFレンダーキットで生成する方法と類似しています。
TMLには、ITSで画面の描画に使用される、ページ上のコンポーネントの説明および追加情報が含まれます。ITSではTMLのみが理解され、HTMLや他のマークアップを受信しても、ITSでは理解されず、エラー・メッセージが表示されログが記録されます。
oracle.wireless.its
のロギング・レベルをFINE
以下に設定します。これにより、ITSで受信したすべてのマークアップを含む追加情報がログに記録されます。ITSロギングの詳細は、OTNのドキュメントIndustrial Telnet Serverのインストール、構成および管理を参照してください。
appConfig.xml
のApplicationDebugMode
プロパティをtrue
に設定します(このプロパティはJDeveloperの埋込みITSのデフォルトではtrueに設定されています)。これはappConfig.xml
のInitialURI
プロパティの設定と同じ方法で設定できます。ApplicationDebugMode
プロパティをtrue
に設定すると、エラーが発生したとき、Telnetエミュレータ画面に役立つ情報が表示されます。
デスクトップのブラウザ・ベース・アプリケーションをテストする一般的な方法の1つには、アプリケーションをコンテナにデプロイし、Webブラウザを開き、アプリケーションへの接続を試行する方法があります。すべて正しければアプリケーション・ページが表示されます。問題があれば、使用中のコンテナ固有のエラー・メッセージを受信しますが、ほとんどのコンテナは、発生した問題を示すスタック・トレースを表示するよう構成できます。
このメカニズムはADFTアプリケーションのテストと非常に類似しています。ADFTアプリケーションはコンテナにデプロイされます。ITSはアプリケーションを指すよう構成されます。次にTelnetエミュレータがITSに接続します。すべて正常に動作している場合は、アプリケーション画面が表示されます。通常、問題がある場合はエラー・メッセージが表示されます。次のセクションでは、発生する可能性のあるエラーのタイプの詳細を説明します。
Telnetエミュレータに表示されるアプリケーション・ページで、フィールドが欠落している、フィールドの外観が予期したものと異なる、あるいは値が正しくないなどの場合で、エラー・メッセージが表示またはログに記録されなければ、アプリケーション自体に問題がある可能性があります。
一般的に考えられる原因は次のとおりです。
アプリケーションのコンテナへの接続時にITSでエラーを受信した場合、あるいは理解できない入力を受信した場合は、ポップアップにエラー・メッセージが表示されます。appConfig.xml
のApplicationDebugMode
プロパティがtrue
に設定されている場合は、このポップアップにADFTアプリケーションからのレスポンスが含まれることがあります。含まれない場合は、アプリケーション・ページのロード試行中にエラーが発生したことを示す一般メッセージが表示されます。
エラー・メッセージは、次の理由のいずれかにより表示される場合があります。
appConfig.xml
のInitialURI
プロパティが正しく設定されていない場合、あるいはアプリケーションがデプロイされるコンテナが接続を受け入れない場合に発生することがあります。この場合は通常、ログのjava.net.ConnectException
を参照します。
appConfig.xml
のInitialURI
プロパティがTMLベース・ページ以外に設定されています(たとえば、HTMLページまたはTMLを生成するよう構成されていないADFアプリケーションを示しています)。
最後の2つの原因については、アプリケーションのコンテナのレスポンス参照が役立ちます。ApplicationDebugMode
がtrue
に設定されている場合は、マークアップがエミュレータの画面に表示されます。ApplicationDebugMode
がtrue
、またはoracle.wireless.its
のログレベルがFINE
以下に設定されている場合は、マークアップのログが記録されます。
Webコンテナがエラー・ページを返す場合は、ページ上に問題があるかどうかを調査し判別できる例外スタックが含まれている場合があります。たとえば、タグが正しく使用されていない、使用した属性が許可されていない、あるいはアプリケーションからNullPointerException
がスローされたことが示されます。このような情報がWebコンテナから返されたページにない場合、通常はWebコンテナのログに含まれています。
返されたマークアップがtml
ルート要素から始まる場合は、ADFTがTMLページで応答したがそれをITSが理解できなかったことを意味します。これはADFTの問題であることを示します。
ADFTでは、クライアントの状態保存はサポートされません。web.xml
の javax.faces.STATE_SAVING_METHOD
パラメータは、server
に設定されている必要があります(または、このパラメータが設定されていない場合、アプリケーションはサーバーの状態保存にデフォルト設定されるコンテナにデプロイする必要があります)。
場合によっては、JDeveloperによってweb.xml
の javax.faces.STATE_SAVING_METHOD
パラメータは自動的にclient
に設定されます。現在、ADFTではこの設定はサポートされていません。この場合は必ず、web.xml
ファイルを手動で変更し、このパラメータをserver
に設定する必要があります。
このように設定しない場合、関連するJSFページの動作は次のようになります。すなわち、通常はサーバーに戻される対話が受け入れられず、ページのリフレッシュのみが行われます。たとえば、ボタンをアクティブにしても、常にフォーカスがページの最初のフィールドに戻り、ページは変更されません。
Telnetアプリケーションの詳細
ADF FacesおよびJDeveloperを使用したTelnetデバイス用のモバイル・ブラウザ・アプリケーションのビルド
Copyright © 1997, 2006, Oracle. All rights reserved.