나는 가장 단순하다고 생각되는 것을 가지고있다. hello world 예제 (아래 참조). 그러나 "http : // localhost : 8080/hello"를 통해 Firefox를 요청할 때 은 ""요청한 리소스 (/ hello /)를 사용할 수 없습니다. "오류 오류가 발생했습니다.Tomcat이 인식하지 못함 <url-mapping>
환경 : 새로 윈도우 7에서 톰캣 6.0.32을 설치
기타 정보 : "유사한 질문에"의 1. 아무도 어떤 단서를 제공하지 않습니다. 8080/안녕 내 서블릿 : 실험에서
는, 그 바람둥이가 로컬 호스트에서 매핑을 수행 하지 않습니다 나타납니다.
나는 설정 "< 시작시로드 >"서블릿의 init 항목이 가 호출되고, 그러나의 doGet()가 호출되지 않습니다 나에게 보여 주었다 .
로그 파일에는 오류가 표시되지 않습니다.
안녕하세요 디렉토리가 이미 webapps에 있고 hello.war이 webapps이고 관리자 응용 프로그램을 사용하여 배포 중입니다. 모두 똑같이 행동합니다.
이 문서에 따르면, 나는 의 context.xml 파일을 사용할 필요가 없습니다, 나의 실험은 context.xml에와 같은 제작 :
일부 가능성은 나는 생각했다 리소스를 찾을 수 없습니다. 오류.
로컬 호스트 : 안녕하세요 /.../ 8080하지만, 그렇다면, 다음은 ... 있어야 무엇 : 8080/안녕하세요 localhost 대신 해야 하는가?
후행/(예 : hello 대/hello /). URL 패턴을 "/ hello/*"로 변경했지만 동일한 방법으로 실패합니다.
나는 문제가 간단하다고 가정하지만, 나는 을 볼 수 없다.
[Added 8/8/2011] context.xml 사용에 대한 답변이 정확합니다. 감사. 주위를 돌아 보면 같은 효과를 내기 위해 대체 방법이 인 것으로 나타났습니다.이 파일을 내 web.xml 파일에 넣는 것입니다.
<context-param>
<param-name>ContextPath</param-name>
<param-value>/dts</param-value>
</context-param>
의 web.xml :
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" version="2.4"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http:/java.sun.com/dtd/web-app_2_3.dtd">
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>test.HelloServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>
HelloServlet.java : 패키지 테스트;
import java.io.*;
import javax.servlet.http.*;
import javax.servlet.*;
public class HelloServlet extends HttpServlet {
public void init()
{
System.out.println("\nHelloServlet.init");
}
public void doGet (HttpServletRequest req,
HttpServletResponse res)
throws ServletException, IOException
{
System.out.println("\nHelloServlet.doGet");
PrintWriter out = res.getWriter();
out.println("Hello, world!");
out.close();
}
}
이됩니다. 죄송합니다. 원본 예제는 자신의 웹 응용 프로그램. 기술적으로 url 매핑을 /로 변경할 수는 있지만 webapp에 context.xml을 추가 할 수 있습니다. –
또한 context.xml을 설정하지 않은 경우. .war 파일 이름이 무엇이든 루트 URL이됩니다. 따라서 war 파일의 이름이 HelloServlet.war 인 경우 tomcat은 webapps/HelloServlet 디렉토리에 배포하고 루트 URL은/HelloServlet이됩니다. 따라서/HelloServlet/hello에서 서블릿에 액세스 할 수 있습니다. –
1./hello/hello가 서블릿을 호출했습니다. 2. 또한 context.xml을 추가했습니다. 문서가 이것에 명확하게 되었으면 좋겠지 만 오. –