0

多分誰かがこれで私を助けることができますか?私は、インターネット上で「www.mydomain.com」と呼ばれる Web サイトを持っています。Webサーバー自体は、触れたり変更したりできません。内部的に BlueCoat リバース プロキシの背後にあるこのサイトは、www.mydomain-internal.local と呼ばれます。現在、サイトは BlueCoat リバース プロキシの背後にあり、正常に動作していますが、Apache リバース プロキシの背後に移動して、後で Mod_Sec を使用して構成したいと考えています (ただし、現在のセットアップの一部ではありません)。ZAP (以前の Paros) で調べてみると、サイトで Java スクリプトが実行されていることがわかります。クライアントを Apache リバース プロキシの前 (インターネット側) に配置すると、すべてが機能しているように見えます (サイトが 30% から 60% をロードしているというメッセージも表示されます) が、最後に完全なコンテンツが表示される前に、次のエラーが表示されます。

「アプリケーションの新しいバージョンがインストールされました。「CTRL + F5」を使用してこのページをリロードしてください」。

また、ZAP を使用すると、BlueCoat の背後にある場合はクライアント側に Cookie が書き込まれていることがはっきりとわかりますが、Apache リバース プロキシの背後にある場合はそうではありません_utmautmz

エラーも表示されます

"//EX[2,1,["com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException/3936916533","タイプ 'country.company.shared.rpc.GetCollection' は 'com.google. gwt.user.client.rpc.IsSerializable' であり、カスタム フィールド シリアライザーがありませんでした。セキュリティ上の理由から、この型は逆シリアル化されません。”],0,5]"

このエラーを解決しようとすると、リバース プロキシの背後で機能する前に、Web サーバー上のコードを変更することで、このエラーを解決する必要があることがわかりました。しかし、私の場合、サイトが Bluecoat リバース プロキシ (基本的に Apache にも依存している) の背後で十分に実行されているため、Apache 構成の何かが間違っていると思います。Apache での私の設定は次のとおりです。

<VirtualHost *:80>
ServerName www.mydomain-internal.local
#ProxyRequests On
#ProxyVia On
#<Proxy *>
#   Order deny,allow
#   Allow from all
#</Proxy>
   ProxyPass / http://www.mydomain.com/PDF/
    ProxyPassReverse / http://www.mydomain.com/
#  ProxyPass / ajp://www.mydomain.com/PDF/
#    ProxyPassReverse / ajp://www.mydomain.com/
#    ProxyPassReverseCookiePath /PDF/     
# ProxyPassReverseCookieDomain www.mydomain-internal.local www.mydomain.com
# CacheDisable http://www.mydomain-internal.local/
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.mydomain-internal\.local$
RewriteRule /foo(.*)$ http://www.mydomain.com/$1 [P,L]
</VirtualHost>

誰かが私を助けてくれますか?

4

1 に答える 1

1

IncompatibleRemoteServiceException は通常、GWT フロントエンド (javascript) が ajax 呼び出しを介して互換性のないバックエンド (Java サーブレット コンテナ) と通信しようとしていることを意味します。これは、サーバー上でフロントエンド バージョンとバックエンド バージョンが混在している場合に発生する可能性があります。

ブラウザが更新されたバージョンをダウンロードする代わりに、古いフロントエンド JavaScript のキャッシュされたバージョンを使用している場合、アップグレード後にも発生する可能性があります。ブラウザー ページを更新した後もエラーが発生する場合は、サーバーのキャッシュ構成が GWT に適していない可能性があります。つまり、サーバーは正しい応答ヘッダーを設定して、どのファイルをキャッシュしてもよいか、どのファイルをキャッシュしてはならないかをブラウザに伝えていません。これは、GWT が適切に機能するために重要です。

あなたの場合、おそらく BlueCoat にこれらのヘッダーを設定するための構成があり、Apache には同等の構成がありませんか? 基本的に、パターンに一致する名前を持つファイルをキャッシュし、パターンを持つファイルを決してキャッシュしないようにサーバーを構成する必要*.cache.*あります*.nocache.*。詳細については、GWT Project サイトのセクションPerfect Cachingを参照してください。

于 2013-11-01T00:44:16.800 に答える