2010-01-23 3 views
12

Tomcat 6.0에서 새 웹 응용 프로그램을 배포하려고하지만 시작 단추를 누를 때마다 반복적으로 나타납니다 FAIL - 컨텍스트 경로에서 응용 프로그램/Hello가 없습니다. 시작. 시작 버튼을 클릭 할 때마다 잘 실행되는 다른 배포 된 응용 프로그램. 그런데 왜이 응용 프로그램을 사용하지 않습니까?FAIL - 컨텍스트 경로에서 응용 프로그램/Hello를 시작할 수 없습니다.

웹 XML :

<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>j_security_check</servlet-name> 
<servlet-class>EmailHander</servlet-class> 
</servlet> 

<login-config> 
<auth-method>FORM</auth-method> 
<form-login-config> 
<form-login-page>/login.jsp</form-login-page> 
<form-error-page>/fail_login.html</form-error-page> 
</form-login-config> 
</login-config> 
<web-app> 

이 내가 카탈 로그 파일에 얻고 무엇을 예외입니다 :

Jan 23, 2010 6:49:31 PM org.apache.catalina.startup.ContextConfig applicationWebConfig 
SEVERE: Parse error in application web.xml file at jndi:/localhost/Hello/WEB-INF/web.xml 
org.xml.sax.SAXParseException: XML document structures must start and end within the same entity. 
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1231) 
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522) 
    at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1644) 
    at org.apache.catalina.startup.ContextConfig.applicationWebConfig(ContextConfig.java:365) 
    at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:1066) 
    at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:261) 
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) 
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4339) 
    at org.apache.catalina.manager.ManagerServlet.start(ManagerServlet.java:1249) 
    at org.apache.catalina.manager.HTMLManagerServlet.start(HTMLManagerServlet.java:612) 
    at org.apache.catalina.manager.HTMLManagerServlet.doGet(HTMLManagerServlet.java:136) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) 
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849) 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454) 
    at java.lang.Thread.run(Thread.java:619) 

웹 xml 파일에서 해당 오류의 이유는 무엇입니까?

답변

19

<web-app>로 끝나는하지만 방법에 의해 예외가 알려줍니다 거의 그대로 것입니다 </web-app>

로 끝나야합니다.

+0

정확합니다. – Dusk

+0

제 2의 코멘트 때문에,이 답변을 +2 할 수 있습니다. ;) –

2

EmailHandler은 실제 서블릿 클래스의 전체 이름입니다. 즉, com.something.EmailHandler과 같은 패키지에 있지 않습니다. web.xml으로 정규화되어야합니다. 귀하의 web.xml

7

<web-app>이 아닌 </web-app>으로 XML을 닫아야합니다.

내가 같은 문제를 했어
1

<servlet-mapping> 
    <servlet-name>jsonservice</servlet-name> 
    <url-pattern>/jsonservice</url-pattern> 
</servlet-mapping> 
0

체크 web.xml 파일 어쩌면 servletContextlistener와

<servlet-mapping> 
    <servlet-name>jsonservice</servlet-name> 
    <url-pattern>jsonservice</url-pattern> 
</servlet-mapping> 

교체의 web.xml에서 서블릿 URL에 슬래시 누락 된 잘하지 못한다. 내 경우에는 servletContextlistener를 추가하고 그에게 비어있게하고 나에게 같은 오류를 주었다. 프로젝트 파일에서 삭제하려고했지만 web.xml 파일에서 여전히 .finally 내가 web.xml에서 삭제하고 파일을 저장한다. 프로젝트를 실행하면 성공한 것으로 나타납니다.

관련 문제