0

Jetty 7.6サーバーではうまく機能するサーブレット内で(単純な)基本認証を使用していますが、Tomcat 6.0.35では、ブラウザにユーザー名/パスワードフォームを表示するために不正な応答を送信しようとするとエラーが発生します:

java.lang.IllegalStateException
org.apache.catalina.connector.ResponseFacade.sendError(ResponseFacade.java:421)

私のサーブレットのコードは次のようになります。

response.setHeader("WWW-Authenticate", "Basic realm=\"" + realm + "\"");
response.sendError(HttpServletResponse.SC_UNAUTHORIZED);

エラーは、コード サンプルの 2 行目で発生します。web.xml で <security-constraint> を使用していません。これは非常に単純な認証である必要があります。

Tomcat が機能しないのに Jetty が機能する理由は何ですか?

4

1 に答える 1

0

確認:

  1. サーブレットを実行する前に出力を生成するフィルタがない
  2. リクエスト中に response.setStatus/response.sendError を 1 回だけ呼び出しています。
  3. 応答バッファをフラッシュしていません

上記のいずれも、期待する前に応答をコミットできます。

于 2012-05-25T14:01:25.507 に答える