2012-05-24 4 views
0

내 서블릿에서 Jetty 7.6 서버와 잘 작동하지만 Tomcat 6.0.35와 함께 (기본) 인증을 사용하고 있습니다. 인증되지 않은 응답을 보내는 동안 오류가 발생합니다. 내 서블릿에서HTTP 기본 인증 : Tomcat 대 Jetty

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

코드는 다음과 같습니다 :

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

오류 코드 샘플의 라인이 발생 브라우저에서 사용자 이름/암호 양식을 표시합니다. web.xml에 보안 제한 >을 사용하고 있지 않습니다. 매우 간단한 인증이어야합니다.

Tomcat이 작동하지 않지만 Jetty가하는 이유는 무엇입니까?

+0

response.sendError 이후와 그 전에 무엇을합니까? 서블릿 출력 스트림에 무언가를 작성합니까? 응답 관리와 관련된 모든 코드를 게시하십시오. –

+0

아니요, 두 줄 전후에 응답에 아무 것도 기록되지 않습니다. 나는 Jetty에서 작동하지만 Tomcat에서는 작동하지 않는 이유를 혼동합니다. 고마워. – chrise

+0

@chrise 서블릿 전에 실행될 수있는 필터는 어떻게됩니까? 전체 스택 추적을 게시 할 수 있습니까? –

답변

0

확인 : 서블릿 당신은 한 번만

  • 당신은 때로 믿을 요청 동안 것은 response.setStatus/response.sendError를 호출
  • 를 실행하기 전에

    1. 당신은 출력을 생성하는 모든 필터가 없습니다 응답 버퍼 플러시

    위의 응답 중 하나라도 예상보다 먼저 응답을 보낼 수 있습니다.