FAIL - приложение по контекстному пути / Hello не может быть запущено - PullRequest
12 голосов
/ 23 января 2010

Я пытаюсь развернуть новое веб-приложение в Tomcat 6.0, но всякий раз, когда я нажимаю кнопку запуска, я постоянно получаю 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)

В чем причина этой ошибки в файле web-xml?

Ответы [ 6 ]

23 голосов
/ 23 января 2010

Ваш web.xml оканчивается на <web-app>, но должен оканчиваться на </web-app>

Что, кстати, почти буквально , что говорит вам исключение.

7 голосов
/ 23 января 2010

Вам нужно закрыть XML с </web-app>, а не с <web-app>.

2 голосов
/ 23 января 2010

Является ли EmailHandler действительно полным именем вашего класса сервлетов, т.е. оно не в пакете, как com.something.EmailHandler? Он должен быть полностью квалифицирован в web.xml.

1 голос
/ 24 декабря 2013

У меня была такая же проблема, мне не хватало косой черты в URL сервлета в web.xml

замена

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

с

<servlet-mapping>
    <servlet-name>jsonservice</servlet-name>
    <url-pattern>/jsonservice</url-pattern>
</servlet-mapping>
0 голосов
/ 15 марта 2018

1-я причина может быть конечным тегом файла web.xml вашего приложения, который не может быть закрыт должным образом.

web.xml может заканчиваться <web-app>, но должно заканчиваться </web-app>

2-я причина , которая работала в моем случае, могла быть папкой lib вашего tomcat, которая должна содержать вспомогательный jar-файл вашей базы данных.

ojdbc для Oracle или sqljdbc для SqlServer

0 голосов
/ 03 сентября 2015

проверьте файл web.xml, возможно, servletContextlistener не справляется. в моем случае я добавил servletContextlistener и оставил его пустым и выдал мне ту же ошибку, я пытался удалить его из файлов проекта, но он все еще в файле web.xml. наконец, я удаляю его из файла web.xml и сохраняю файл. запустить проект и он успешно заявлен

...