2010-06-15 3 views
1

tomcat_home/webapps/디렉토리에 프로젝트를 넣었습니다. 구조는 project_name/WEB-INF/classes입니다. in WE-INF 나는 web.xml 서술자를 넣었다. 문제는 응용 프로그램을 실행하려고하면 파일을 찾지 못한다는 것입니다. 오류 :Tomcat에서 앱을 실행하는 방법은 무엇입니까?

<?xml version="1.0" encoding="ISO-8859-1"?> 
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" 

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" 

    version="2.4"> 
<servlet> 
    <servlet-name>Chapter1 Servlet</servlet-name> 
    <servlet-class>Ch1Servlet</servlet-class> 
</servlet> 

<servlet-mapping> 
    <servlet-name>Chapter1 Servlet</servlet-name> 
    <servlet-url>/Serv1</servlet-url> 
</servlet-mapping> 
</web-app> 

가 나는 또한 서버를 다시 시작했지만, 그것은 작동하지 않습니다

The requested resource() is not available. 

내 web.xml의 내용이다. 제안 사항이 있으십니까?

+1

응용 프로그램이 tomcat 로그에서 성공적으로 배포되었는지 확인 했습니까? 서블릿 이름에서 공백을 제거한 다음 다시 점검 할 수 있습니까? – techzen

답변

1

서블릿에 네임 스페이스가 있습니까? -----

좋아, 이것을 시도 태그에서 당신은 완벽하게 주석을 읽은 후 Ch1Servlet 클래스, 즉 my.code.Ch1Servlet

--- 추가 자격을해야합니다. 웹 응용 프로그램의 컨텍스트를 만듭니다. project_name.xml 파일을 만들고 다음을 입력하십시오.

<Context path="/Serv1" docBase="webapps/project_name" 
     reloadable="true" debug="0" privileged="true"> 
</Context> 

이제 xml 파일을 webapps 디렉토리에 넣으십시오.

당신은 WAR 다음 예를 들어, "웹 어플리케이션/project_name.war"당신이 패키지에 서블릿을 배치해야처럼 보이는

+0

기본 네임 스페이스에 있습니다. – artaxerxe

+0

충분하지 않습니다. 서블릿에 패키지가 있습니까? 그렇다면 Adrian이 말했듯이 패키지의 전체 경로가 서블릿 이름 앞에 와야합니다. –

+0

서블릿을 패키지에 넣지 않는다면, Tomcat은 서블릿을 현재 디렉토리라고 간주하는 것으로 검색 할 것입니다. 이것을 패키지에 넣고 servlet-class 태그에서 패키지를 참조하십시오. –

0

Tomcat과 함께 제공되는 기본 server.xml을 사용하는 경우 웹 응용 프로그램을 실행하기 위해 변경할 필요가 없습니다. 다음 URL에서 액세스하려고 시도 했습니까? http://localhost:8080/project_name/

+0

예, 작동하지 않습니다. – artaxerxe

0

,로 Docbase의 교체 배포하는 경우 com.me.Ch1Servlet. 그런 다음 서블릿 클래스 선언을 <servlet-class>com.me.Ch1Servlet</servlet-class>

+0

나는 Adrian의 게시물 이후에도이 작업을 수행했지만 작동하지 않는다. – artaxerxe

1
당신은, 당신이 멀리 무엇을 던져 다시 시작하고 매우주의 깊게 통해 갈 필요가

:

http://tomcat.apache.org/tomcat-6.0-doc/appdev/index.html

을 지금까지 무엇을 배웠는가?

  1. 서블릿 .class는 패키지에 있어야합니다. 클래스가 Bar.jar 인 경우 WEB-INF/classes/com.foo.Bar.class가 표시되어야합니다.
  2. 응용 프로그램을 MyApp라는 WAR에 패키지하고/webapps에 배치하여 배포하십시오.
  3. URL은 당신이/바

제안을 할 사람들을 강제하고, "이 작동하지 않습니다"라는 반복에 com.foo.Bar을하게되면, http://localhost:8080/MyApp/Bar을 할 필요가, 당신을 얻을하지 않을 당신이 있어야 할 곳.

관련 문제