2012-06-26 4 views
5

WEB-INF/lib 디렉토리에 jar 파일이 있습니다. 그 항아리 안에는 하나의 파일 (image.jpg)이있는 META-INF/resources 디렉토리가 있습니다. 내가 서블릿 3.0 API를 알고있는 것처럼, 내가 톰캣 7에서 내 웹 응용 프로그램의 일환으로이를 배포 할 때, 나는META-INF/resources의 리소스를 찾을 수 없으며 404를 반환합니다.

http://host/context/image.jpg 

로 이동하여 단지 내에서로드 된 이미지를 볼 수 있어야합니다. 하지만 대신 404 오류가 발생합니다. 문서에서 말했듯이 servlet_api가 jar 파일 내에서 리소스를로드하지 않는 것처럼 보입니다.

내가 뭘 잘못하고 있니? Tomcat에게 이러한 리소스를로드하고 웹 브라우저에서 사용할 수 있도록 tell.xml에 web.xml 파일을 넣어야하는 필드가 있습니까?

+0

혼란을 없애기 위해 Struts2를 Convention/Rest 플러그인과 함께 사용하고 있지만 서블릿 3.0 설명서에 따르면 문제가되지는 않지만 아직까지는 전혀 작동하지 않습니다! 나는 도움이 필요해. –

답변

5

병이 어떻게 만들어 졌는지 맞습니다. Tomcat 7은 Servlet 3.0 jar와 함께 제공되지만 web.xml에 버전 3.0이라고 명시하지 않는 한 jar 파일에서 자원을 제공하지 않습니다. Tomcat은 Servlet 3.0 기능을 원한다고 가정하지 않습니다. 당신의 web.xml에

, 당신의 웹 응용 프로그램 태그는 다음과 같이 시작해야합니다 버전 3.0

을에

<web-app xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
    version="3.0"> 

참고 참조를 즉시 당신이 웹 응용 프로그램은 지정으로 버전 3.0에서는 Servlet 3.0 기능에 액세스 할 수 있습니다.