我正在尝试在Tomcat 6.0中部署新的Web应用程序,但每当我点击开始按钮时,我会反复获取 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>
这就是我在catalina日志文件中获得的异常:
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文件中出现错误的原因是什么?
答案 0 :(得分:23)
您的web.xml
以<web-app>
结尾,但必须以</web-app>
结尾
顺便提一句,字面意思异常告诉你什么。
答案 1 :(得分:7)
您需要使用</web-app>
关闭XML,而不是<web-app>
。
答案 2 :(得分:2)
EmailHandler
是否真的是servlet类的全名,即它不在像com.something.EmailHandler
这样的包中?它必须在web.xml
中完全合格。
答案 3 :(得分:1)
我遇到了同样的问题,在web.xml中缺少servlet url中的斜杠
替换
<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>
答案 4 :(得分:0)
检查web.xml文件可能servletContextlistener表现不佳。 在我的情况下,我添加了servletContextlistener并让他一个空,并给了我同样的错误,我试图从项目文件中删除它,但它仍然在web.xml文件。最后我从web.xml删除它并保存文件。运行项目并成功说明
答案 5 :(得分:0)
第一个原因可能是您的应用程序的web.xml文件的结尾标记,该文件无法正常关闭。
web.xml可能以<web-app>
结尾,但必须以</web-app>
第二个原因可能是tomcat的lib文件夹必须包含数据库的支持jar文件。
对于Oracle的情况, ojdbc
;对于SqlServer
sqljdbc