2010-07-23 3 views
4

첫 번째 프로젝트로 작은 웹 사이트를 만들고 있습니다. 내 서버 측 스크립팅을 위해 Java Servlet 및 JSP를 사용하도록 마무리했습니다. 저는 O'Reilly의 HeadFirst Servlets과 JSP에서 그것을 배우고 있습니다. Apache와 Tomcat을 웹 서버와 컨테이너로 사용하기로 결정했습니다. 나는 그것을 다운로드했다. 나는 심지어 jdk 1.6 update 21을 가지고있다. C에서 아파치의 압축을 푼다. 내 브라우저에 http://localhost:8080을 입력하면 기본 Tomcat 홈 페이지가 성공적으로 실행되기 때문에 성공적으로 실행 중이다.아파치 톰캣에 기본 html 파일을 배포 할 수 없습니다.

3 장에는 맥주라는 작은 프로젝트가 있습니다. 그래서 나는 그것을 만들려고 노력했다. webapps 아래에 beer이라는 디렉토리를 만들었습니다 C:\apache-tomcat-7.0.0\webapps\beer. 그 안에 기본을 확인하기 위해 form.html이라는 html 파일을 만들었습니다. 그러나 나는 다음과 같은 오류가 브라우저 http://localhost:8080/beer/form.html를 통해 액세스하려고하면 심지어 바람둥이 6을 사용하여 시도했다

HTTP Status 404 - /beer/form.html

type Status report

message /beer/form.html

description The requested resource (/beer/form.html) is not available.

Apache Tomcat/7.0.0

,하지만 용도에 관한 것이다.


은 ... 회신 주셔서 감사합니다 사실 난 서블릿는 심지어 배포 설명을 요구하는 것은 너무하지 않은 .html 파일에 액세스하려고 여기 is..that 내 의심 ????

글쎄, 서블릿 i는 (처음에는) 만들 계획이었습니다 .... 내가 만든 html 파일에서 (action = "....") 형태로 언급 된 것입니다 .... 서블릿을 배포하기 전에 기본 html 파일을 검사 할 생각이었습니다 .... btw ... html 파일도 DD에 포함해야한다면 XML 코드에 ServletName 대신 써야합니다. 줬어? 여기 내 web.xml 파일의 내용 (U 말했듯이 내가 그것을 수정 ...하지만 서블릿 이름에 쓸 것을 몰라)입니다

<?xml version="1.0" encoding="utf-8"?> 
<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/web-app_2_4.xsd" version="2.4"> 
    <servlet> 
     <servlet-name>html page</servlet-name> 
     <servlet-class>form</servlet-class> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>html page</servlet-name> 
     <url-pattern>/beer/form.html</url-pattern> 
    </servlet-mapping> 


    <servlet> 
     <servlet-name>Ch3 Beer</servlet-name> 
     <servlet-class>com.example.web.BeerSelect</servlet-class> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>Ch3 Beer</servlet-name> 
     <url-pattern>/SelectBeer.do</url-pattern> 
    </servlet-mapping> 
</web-app> 

답변

0

잘 작동합니다. 아마 URL이나 파일 이름에 오타가있을 것입니다. 대소 문자를 구분합니다. /Beer/beer과 다릅니다. URL을 다시 선택하십시오. 또한 다운로드 한 zip에서 실행 중이거나 추출 된 Tomcat의 인스턴스가 여러 개 있지 않습니까? 새 페이지를 잘못된 페이지에 넣었거나 잘못된 페이지를 실행 중일 수 있습니다.실행중인 것으로 생각되는 Tomcat 인스턴스를 종료하고 웹 브라우저에서 홈페이지를 다시로드하십시오. 홈페이지가 사라지지 않으면 다른 것입니다.

+1

내 URL을 여러 번 확인했습니다 ... 도 서버 6.0과 7.0을 모두 종료하고 strtd 만 1 ... 여전히 문제가 지속됩니다 ... 심지어 홈 페이지가 올바르게로드됩니다. 나는 당황했습니다 – shahensha

+1

C 나는 문제가 생겼다. ... u가 맞았다. ... 나는 내 파일의 이름을 짓는 데 아주 엿 같은 실수를했다 ... ur much post 덕분에 ... ur post는 내가 그것을 몇 번이고 다시 확인하게했다. 그리고 문제가 생겼어 – shahensha

+0

천만에. 이 대답을 수락 표시해야합니다 :) – BalusC

2

문제는 거의 확실 서블릿 선언에 있습니다.

은 웹 애플리케이션 (/webapps/beer/WEB-INF)의 WEB-INF 폴더 내의 web.xml을라는 파일이 있습니다. 당신이 그것을 발견하고 그 내용을 게시 할 수 있는지보십시오.

이 파일은 요청 URL에 서블릿이 매핑되는 방법을 선언합니다. 따라서 URL 확장 /*에 매핑 된 서블릿이있는 경우 : 서블릿 ServletName가 URL에 대한 요청을 차단하기 때문에

<servlet-mapping> 
     <servlet-name>ServletName</servlet-name> 
     <url-pattern>/*</url-pattern> 
    </servlet-mapping> 

하면 직접 파일에 액세스 할 수 없습니다 (즉 /beer/form.htmlform.html를 검색하지 않습니다) 그 http://localhost:8080/beer/으로 시작됩니다.


, BTW 경우에 당신이 궁금해 : 상태 코드 HTTP 404가 URL 포인트에 파일을 찾을 수 없다는 것을 의미한다.

HTTP 상태 코드에 대한 자세한 내용은 http://en.wikipedia.org/wiki/List_of_HTTP_status_codes#4xx_Client_Error을 참조하십시오.

+1

죄송합니다.하지만이 답변은 완전히 잘못되었습니다. 새 폴더에는 다른 서블릿이 필요하지 않습니다. – BalusC

+0

나는 그것을 말하지 않았다. 단지 가능성을 말하고 있습니다. – FK82

+0

아직 잘못되었습니다. 한 가지, 그의 "응용 프로그램"은 서블릿을 사용하지 않습니다. 다른 하나는,'url-pattern'은 애플리케이션 이름 이후 * * *까지만 작동하지 않습니다.이 매핑은 기본적으로'web.xml '에 의해 제어되지 않습니다. –

관련 문제