1

WebSphere 6 にデプロイされた IceFaces 1.8.2 を使用して構築された Web アプリケーションがあります。

  1. サーバーの IP アドレスまたはホスト名を使用して (たとえば、10.250.46.80:8080/myApplication または host.domain.com:8080/myApplication を呼び出して) アクセスしようとすると、すべて正常に動作します。
  2. エイリアス (www.myapplication.com など) でアクセスしようとすると、アプリケーションはウェルカム ページをロードし、問題なく jspx ページにリダイレクトしますが、数秒間何かをロードし続け、http エラー 500 が表示されます。 :
Error Message: javax.faces.FacesException: javax.faces.FacesException: Problem in renderResponse: User session has expired or it was invalidated.
Error Code: 500
Target Servlet: Persistent Faces Servlet
Error Stack:
java.lang.Exception: javax.faces.FacesException: javax.faces.FacesException: Problem in renderResponse: User session has expired or it was invalidated.
     at com.icesoft.faces.context.View.servePage(View.java:153)
     at com.icesoft.faces.webapp.http.core.SingleViewServer.service(SingleViewServer.java:52)
...
...
     at com.icesoft.faces.context.View$2$1.respond(View.java:49)
     at com.icesoft.faces.webapp.http.servlet.ServletRequestResponse.respondWith(ServletRequestResponse.java:201)
     at com.icesoft.faces.context.View$2.serve(View.java:78)
     at com.icesoft.faces.context.View.servePage(View.java:150)
     ... 44 more

同期更新を有効にしようとしたところ、アプリケーションがクラッシュしなくなりましたが、たとえば ValueChange リスナーのように機能する Ajax 機能がないことに気付きました。ドロップダウン リスト (部分的な送信) の値を変更すると、ブラウザーが何かの読み込みを開始し、エラー 500 が再び表示されます。

これは、ブラウザとして Google Chrome を使用している場合にのみ発生します。IE、Opera、Firefox、Safari では発生しません。

Chrome コンソールで send-recieve-updates の Ajax リクエストを手動で呼び出そうとしましたが、応答は <session-expired/> でした Firefox では通常のコンテンツを取得しました。

ヘッダーの整列などのランダムなことを試しましたが、Chrome ではほとんどのヘッダーの変更が禁止されているため、Firefox のヘッダーと整列してテストすることはできません。

似たようなことを経験した人はいますか?

4

1 に答える 1

0

転送/リダイレクトの原因となるエイリアス (正確な名前はわかりません: URL 書き換え/転送? 仮想ホスト/プロキシ パス?) を使用する場合、ブラウザがデフォルトでエイリアスを含むページに何かを挿入しないようにしてください。無限ループに陥る可能性があります。

私の場合の解決策は、独自のファビコン画像を挿入したため、Chrome はデフォルトの画像を挿入しませんでした。

于 2014-01-30T11:26:22.170 に答える