次の節では、AEM Screens プロジェクトに関してよく寄せられる質問に対する回答を示します。
リストに示した必須チェックは、問題を発生させる前に、プライマリサポートまたは顧客側サポートが試す必要があります。
http://localhost:24502
に移動します。すべてのコンテンツが正しくダウンロードされているかどうかを確認します。CTRL + ALT +I
を押して開発コンソールを起動し、ログを表示します。フィールドに空白またはグレーの画面が表示されないようにするには、デフォルトのグローバルチャネルまたはスケジュールを作成し、すべてのディスプレイに最も低い優先度 1 を割り当ててください。(ネットワーク、プレーヤー、サーバーまたはレプリケーションが原因で)コンテンツの更新で問題が発生した場合でも、このコンテンツは既にディスク上にキャッシュされているので、正常に再生され、グレーの画面は表示されません。
チャネルやスケジュールなど、他のすべてのコンテンツの優先度は 1 より大きいので、他のコンテンツが優先され、グローバルチャネルまたはスケジュールのコンテンツ(優先度 1)はフォールバックオプションとしてのみ再生されます。
オンラインチャネルでは、最新のコンテンツがリアルタイム環境で表示されるのに対して、オフラインチャネルでは、キャッシュされたコンテンツが表示されます。
チャネルを選択し、アクションバーからチャネルのプロパティに移動します。「チャネル」タブで「開発者モード (チャネルをオンラインに強制)」をオンにして、チャネルをオンラインにします。
「チャネルロール」は、作成者が汎用のエクスペリエンスに直接専念できるように、実行される実際のチャネルを抽象化したものです。チャネルをそのコンテキスト(ディスプレイまたはスケジュール)で一意に識別する一種のタグと考えることができます。
静的参照の場合、解決は指定されたパスに従うだけです。
動的参照の場合は、チャネルが(スケジュールではなく)ディスプレイに割り当てられると、解決が行われます。ディスプレイのパスがチャネルのコンテキストになり、解決は次のように(優先順位の高い順に)行われます。
場所フォルダーに到達するまでこのような解決を繰り返し、到達した時点で停止します(例えば、チャネルフォルダー内のチャネルを参照することはできません。参照できるのは、場所サブツリー内のチャネルだけです)。
ビルド済みのカスタムクライアント側コード clientlib
を AEM Screens チャネルで使用する場合は、clientlib
ファイルがチャネル(manifest.json
)に正常に読み込まれ、clientlib
のパスがファイルに確実に含まれるようにするために、次の手順を実行する必要があります。
チャネルエディターで次の手順に従います。
clientlib
を追加するコンポーネントを選択します。現在、登録はオーサーインスタンス上でのみ可能です。登録サービスは認証されていませんが、保留中のデバイスを AEM に作成するだけで、実際にデバイスを登録したりディスプレイを割り当てたりすることはありません。
デバイスを登録する(つまり、デバイスのユーザーを AEM に作成する)には、やはり AEM に対する認証が必要です。現時点では、登録ウィザードに従って手動で登録を完了する必要があります。理論的には、悪意のあるユーザーが保留中のデバイスを複数作成する可能性がありますが、AEM にログインしない限り、デバイスを登録することはできません。
登録リクエストは POST リクエストです。
デバイス ID は、パラメーターとして渡すのではなく、セッションから取得することをお勧めします。これにより、サーバーログ、ブラウザーキャッシュなどがクリーンアップされます。現時点では、これでセキュリティ上の問題にはなっていません。なお、意味的には、GET は、サーバー上で状態変化がない場合に使用され、状態変化がある場合は POST が使用されます。
登録リクエストを拒否することはできません。代わりに、Adobe Experience Manager Web Console
で設定したタイムアウトの後に登録リクエストの有効期限が切れます。デフォルトでは、この値は 1 日に設定され、メモリキャッシュに保存されます。
画面が空白になる問題のトラブルシューティングを行うには、以下の可能性がないか確認してください。
Apache Sling Referrer Filter の「Allow Empty」をオンにする必要があります。これは、AEM Screens Player と AEM Screens サーバーの間の制御プロトコルの最適な動作のために必要です。
この問題は、プレーヤーが AEM Screens サーバーの DNS を検出できない場合に発生する可能性があります。IP アドレスを使用して接続してみてください。サーバーの IP アドレスを取得するには、arp <server_dns_name> を使用します。
純粋な Android API を使用するクロスプラットフォームの Android ウォッチドッグは、既に APK に含まれています。追加のソフトウェアは必要ありませんが、使用するデバイスによっては、APK に再署名して、完全な電源サイクル(電源のオン/オフ)を実行するためのシステム権限(PowerManager API)を取得しなければならない場合があります。製造元のキーを使用して再署名しない場合は、アプリケーションが終了して再起動しますが、電源サイクル(電源のオン/オフ)は行われません。
Android プレーヤーの実装方法について詳しくは、Android プレーヤーの実装を参照してください。
必要な監視および警告機能にもよりますが、新機能である AEM Screens 通知サービスでは、デバイスがしばらくの間 ping に応答しなかった場合にユーザーに通知します。サードパーティツールは、お使いのオペレーティングシステム(OS)とその機能、およびユーザー固有のニーズによって異なります。
デバイスアクティビティの監視について詳しくは、AEM Screens 通知サービスを参照してください。
Chrome OS プレーヤーは、実際の Chrome プレーヤーデバイスがなくても、開発者モードで Chrome ブラウザープラグインとしてインストールできます。インストールについては、次の手順に従います。
AEM Screens Player は、起動時に 404 エラーが発生すると、/content/screens/svc.ping.json への要求を行います。プレーヤーが認証要求を開始して、パブリッシュインスタンスに対して認証を行います。パブリッシュインスタンスにカスタムエラーハンドラーがある場合、匿名ユーザーに対しては、/content/screens/svc.ping.json の実行で必ず 404 のステータスコードを返すようにしてください。
次の手順に従って、任意の Android プレーヤーで「スリープモードにしない」をオンにします。
Windows Player にはウィンドウモードはありません。常にフルスクリーンモードになります。
次の手順に従って、AEM Screens プレーヤーが /content/screens/svc.json
および /libs/granite/core/content/login.validate/j_security_check
へ継続的にリクエストを送信する場合のトラブルシューティングを行います。
AEM Screens プレーヤーが起動すると、/content/screens/svc.json
に対してリクエストを行います。プレーヤーが応答で 404 ステータスコードを取得すると、パブリッシュインスタンスに対して /libs/granite/core/content/login.validate/j_security_check
を使用し、認証要求を開始します。パブリッシュインスタンスにカスタムエラーハンドラーがある場合、/content/screens/svc.json
または /content/screens/svc.ping.json
で、匿名ユーザーに対して必ず 404 のステータスコードを返すようにしてさい。
ディスパッチャー設定によってこれらのリクエストが許可されているかどうかを /filters
で確認します。
詳しくは、Screens フィルターの設定を参照してください。
ディスパッチャーの書き換えルールによって、Screens のパスが別のパスに書き換えられているかどうかを確認します。
オーサーまたはパブリッシュインスタンスに /etc/map
パスがあるかどうか、および Screens のパスが sling:match
と一致し、内部的に別のパスにリダイレクトされているかどうかを確認します。/system/console/jcrresolver
で正しい URL を解決すると、これらの URL がパブリッシュインスタンスによって他のパスに書き換えられているかどうかを識別できます。
Apache Sling Resource Resolver Factory の設定によって、内部で書き換えが行われているかどうかを確認します。
ディスプレイとデバイスの詳細は、次の場所で取得できます。
内部 JS API
ContextHub ストア:/libs/screens/clientlibs/contexthub
では、チャネル、デバイス、および表示情報を公開するための 3 つの ContextHub ストアが定義されています。
次の手順に従って、ContentHub ストアの値を使用します。
チャネルのプロパティを編集し、パーソナライゼーションタブの ContextHub パスを値に設定します(上述)
チャネル JS では、次を使用できます。
ContextHub.getStore('screens-device');
ContextHub.getStore('screens-display');
ContextHub.getStore('screens-channels');
Livefyre を無効にしてログエラーを回避するには、次の手順に従います。
Livefyre バンドルを無効にする:
https://<host>:<port>/system/console/bundles
に移動します。com.adobe.cq.social.cq-social-livefyre
を検索します。Livefyre ポーラーを無効にする
/etc/importers/polling/livefyre-poller/jcr:content
に移動します。AEM Screens は、製品で使用されるクエリのインデックス定義を作成します。
error.log
にクエリトラバーサル WARN がある場合は、クエリのカスタムインデックスを作成します。詳しくは、「インデックスの設定」を参照してください。
Oak ドキュメントの追加リソースも参照できます。
v3 マニフェストを有効にするには、次の操作を行う必要があります。
Dispatcher を更新します。
詳しくは、マニフェストバージョン v3 に対応した Dispatcher の設定を参照してください。
カスタムコンポーネントを更新します。
詳しくは、カスタムハンドラーのテンプレートを参照してください。
/system/console/configMgr/configMgr/com.adobe.cq.screens.offlinecontent.impl.ContentSyncCacheFeatureFlag
でコンテンツ同期を無効にします。
/system/console/configMgr/com.adobe.cq.screens.offlinecontent.impl.OfflineContentServiceImpl
でスマート同期を有効にします。
channel/experience fragment/page components
を編集します。
「オフライン設定」タブに移動します。
clientlibs
およびマニフェストに追加する必要がある静的ファイルのフォルダーを入力します。
コネクタを動作させるには、最低限のバージョンの AEM 6.5 機能パック 8 AMS をインストールする必要があります。 Screens 機能パックの最小バージョンを取得するには、使用可否を参照してください。
このサービスは、オーサーインスタンスとパブリッシュインスタンスのパブリックホスト名を定義するために使用され、値を使用してデバイスサーバーの URL を更新したり、ContextHub のターゲティングもおこなったりします。
Screens の CQ Link Externalizer サービスは、次の場所で設定できます。
http://localhost:4502/system/console/configMgr
に移動します。author/publish
エントリのホスト名を変更します。