作成日: 2017/03/22 最終更新日: 2018/09/26
文書種別
不具合
発生環境
リバースプロキシーやロードバランサーでURLを書き換えている環境で発生します。
状況
回避方法あり
詳細
リバースプロキシーやロードバランサーを使用してURL書き換えを行う環境において、クライアントから帳票Webアプリケーションにアクセスした場合、Webビューワ(Flashビューワ)にレポートが表示されない(※)場合があります。
※Flashビューワ本体は表示されているが、中身のレポートが表示されない状態
過去の事例として、以下の原因が考えられます。なお、各問題の対応方法については、「回避方法」を参照ください。
※Flashビューワ本体は表示されているが、中身のレポートが表示されない状態
過去の事例として、以下の原因が考えられます。なお、各問題の対応方法については、「回避方法」を参照ください。
- URL変換が正しく行われていない
通常、リバースプロキシーではWAN→LANへの通信の際にURL変換を行います。また、ロードバランサーにおいても、リクエストの振り分けルールによってはURL変換が発生する場合があります。
URL変換がうまくいかない場合、ActiveReportsのWebサービスにアクセスできず、本事象が発生します。
Flashビューワのレポート表示に関する情報は、以下のように「param」タグに定義されており、value属性内には、サーバーのキャッシュからレポートデータを取得するWebサービス「ActiveReports.ReportService.asmx」のパス情報が含まれています(赤字の部分)。
-----------------
<param name="flashvars" value="resourceModuleURLs=Grapecity.ActiveReports.Flash.v11.Resources.swf&localeChain=ja_JP,en_US&Token=20f779f6-8a83-4387-9191-cb227ec082ab&ToolBar=(省略)&doctype=1&WebServiceAppPath=/activereports/ar11web/&WebServiceAccessPoint=/activereports/ar11web/ActiveReports.ReportService.asmx" />
-----------------
- URL変換の前後でドメインが異なる
ActiveRepostsのFlashビューワを使用した場合、リバースプロキシーやロードバランサーのドメイン(ドメインA)と、内部に配置されたWebサーバー(Flashビューワを含むWebアプリケーションを配置したもの)のドメイン(ドメインB)が異なる場合には、Flashビューワの内部でクロスドメイン通信が発生します。これは、以下のナレッジ文書の「4.Webガーデン構成やロードバランサーの構成にしている」の図にありますように、ActiveReportsのFlashビューワに表示するデータを、図中(3)のWSDLに記載されたURL(Flashビューワを含むWebアプリケーションを配置したWebサーバーのURL、ドメインB)から直接取得しようとするためです。
WebViewerコントロール使用時にレポートが表示されない
また、Flash Playerの仕様として、Flash Playerをクロスドメイン環境で使用する場合は、ポリシーファイル(crossdomain.xml)でクロスドメイン通信を許可する必要があります。
このため、ポリシーファイルの設定が行われていない場合、Flashビューワでクロスドメインの通信が許可されず、本事象が発生します。
回避方法
以下の方法が考えられます。
- リバースプロキシーのURL変換ロジックを変更し、「param」タグの該当部分(前述の「詳細」の赤字の部分)を正しく変換する
※URL変換の設定方法の詳細については、各機器およびソフトウェアの提供元にお問い合わせください
例:緑字の部分を追加
●変換前
WebServiceAppPath=/activereports/ar11web/&WebServiceAccessPoint=/activereports/ar11web/ActiveReports.ReportService.asmx
●変換後
WebServiceAppPath=/aaa/bbb/activereports/ar11web/&WebServiceAccessPoint=/aaa/bbb/activereports/ar11web/ActiveReports.ReportService.asmx - ポリシーファイル(crossdomain.xml)を配置する
ActiveRepostsのFlashビューワをクロスドメイン環境で使用する場合には、Flashビューワを含むWebアプリケーションを配置したWebサーバーに、ポリシーファイルを配置する必要があります。
なお、ポリシーファイルは、Webサーバーのルートに配置します。
(例:http://www.arflashviewer.com/crossdomain.xml)
◆ポリシーファイル(crossdomain.xml)の例
<?xml version="1.0"?> <!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd"> <cross-domain-policy> <site-control permitted-cross-domain-policies="all"/> <allow-access-from domain="*" secure="false"/> <allow-http-request-headers-from domain="*" headers="*" secure="false"/> </cross-domain-policy>
各オプションの設定内容については、Adobe社から公開されている情報を確認ください。
[Setting crossdomain.xml file for HTTP streaming | Adobe Developer Connection]
https://www.adobe.com/devnet/adobe-media-server/articles/cross-domain-xml-for-streaming.html
旧文書番号
40166