2008-09-15 5 views
2

Sun의 J2EE deploytool에 의해 자동 생성 된 주어진 .WAR의 페이지가 동일한 .WAR 파일에 서블릿을로드하려고 할 때 404 resource not found 오류를 일으키는 가장 큰 원인은 무엇입니까?
예 :Java Servlet 404 오류

HTTP 상태 404 - /에게 MyServlet/MyServlet이라는

유형 상태 보고서

메시지 /에게 MyServlet/MyServlet이라는

설명 요청한 리소스 (/에게 MyServlet /에게 MyServlet) 사용할 수 없습니다. 관련


: 이들 중 얼마나 많은 당신은 서버 구체적으로 기대? 예 : Sun Java Application Server Tomcat & Catalina?

+0

로컬 서버에서 응답을받지 못했지만 stackoverflow 서버에서 응답이 너무 많습니다. – Acn

답변

5

web.xml에 유효한 < 서블릿 매핑 >이 'MyServlet'에 있습니까? 그것은 저의 가장 큰 범인입니다.

1

404 오류는 요청한 리소스를 찾을 수 없다는 것을 의미합니다. pkaeding이 암시 하듯이, 아마도 servlet 매핑이 web.xml 파일에 정확하지 않거나 존재하지 않기 때문일 수 있습니다. 서블릿은 web.xml 파일에 지정되어야하며 특정 경로 ("url-mapping")에 매핑되어야합니다. "MyServlet"서블릿이 존재하지만 응용 프로그램 컨텍스트 루트를 기반으로 "/ MyServlet/MyServlet"로 해결 될 수있는 경로에 매핑되지 않고 다른 경로 (즉, 다른 서블릿 등)가이 경로로 해결하면 응용 프로그램 서버 주어진 경로에 아무것도 매핑되어 있지 않다는 것을 나타내는 404를 던집니다.

0

저는이 바로 그 문제에 대해 약 1 시간을 보냈습니다. OSX에서 Tomcat 5.5.27은 다른 서블릿과 서블릿 매핑을 추가 할 때까지 잘 작동했습니다. 은 모두 404를 반환했습니다. 새 서블릿/서블릿을 추가했을 때 그것을 깨달았습니다. 매핑 쌍 나는 서블릿 엔트리 앞에 서블릿 매핑을 두었다. 그것은 실수하기 쉽고 합리적인 오류 메시지와 닮은 것을주지 않고 전체 응용 프로그램을 무릎으로 감싸는 것이 약간 극단적 인 것처럼 보일지라도 회고에서는 완벽하게 이해할 수 있습니다.

0

서블릿 매핑은 일반적인 문제입니다. 그러나 web.xml에 어떤 사기꾼도있는 경우 범인이 될 수 있습니다. 필터가 doFilter 전에 서블릿이 실행되기 전에 항상 코드를 실행한다는 것을 깨달아야합니다. (기술적으로 doFilter 다음에 코드를 실행합니다.) 우리 코드에서는 특정 상황에서 404를 반환하는 필터를 만들었습니다. 때로는 일부 또는 모든 필터 매핑을 제거하면 필터 매핑과 관련이 있는지 검색하는 데 도움이됩니다.