今天在维护一个很久以前做的系统的时候遇到了一个问题,启动tomcat 的时候报
严重: End event threw exception
java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedMethodAccessor20.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.tomcat.util.IntrospectionUtils.callMethodN(IntrospectionUtils.java:929)
at org.apache.tomcat.util.digester.CallMethodRule.end(CallMethodRule.java:578)
at org.apache.tomcat.util.digester.Rule.end(Rule.java:228)
at org.apache.tomcat.util.digester.Digester.endElement(Digester.java:1057)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:601)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.endNamespaceScope(XMLDTDValidator.java:2077)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.handleEndElement(XMLDTDValidator.java:2028)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.endElement(XMLDTDValidator.java:901)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1772)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2923)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:645)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:508)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1561)
at org.apache.catalina.startup.ContextConfig.applicationWebConfig(ContextConfig.java:351)
at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:1041)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:260)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4143)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:904)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:867)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:474)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1122)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:310)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1021)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
at org.apache.catalina.core.StandardService.start(StandardService.java:450)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)
Caused by: java.lang.IllegalArgumentException: Servlet mapping specifies an unknown servlet name invoker
at org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:2322)
at org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:2302)
... 48 more
最后网上了找到了一个答案
一个web工程下的web.xml缺少了以下信息:
<servlet>
<servlet-name> invoker </servlet-name>
<servlet-class> org.apache.catalina.servlets.InvokerServlet </servlet-class>
</servlet>
正确的应该是:
<servlet>
<servlet-name> invoker </servlet-name>
<servlet-class> org.apache.catalina.servlets.InvokerServlet </servlet-class>
</servlet>
<servlet-mapping>
<servlet-name> invoker </servlet-name>
<url-pattern> /servlet/* </url-pattern>
</servlet-mapping>
分享到:
相关推荐
在myeclipse中点击window→preference→在搜索框中输入Tomcat→选择安装的tomcat版本,我这里是选择Tomcat 7.x→点击JDK→在Tomcat 7.x JDK name:下拉选项中选择在本机中安装的jdk版本→点击OK然后再次启动tomcat就...
1. **无法启动Tomcat** - 错误描述:启动时出现“找不到主类”或“java.lang.ClassNotFoundException”。 - 原因分析:通常是由于`CLASSPATH`环境变量未正确设置,或者Tomcat版本与JDK版本不兼容。 - 解决方案:...
配置 Tomcat 需要指定一个文件夹名字,例如,tomcat-8.5.50,然后观察 Maven 仓库中多了什么?例如,可能会出现 tomcat-8.5.50 文件夹。 六、解决警告问题 在 Tomcat 配置过程中,可能会出现警告问题。解决警告...
在部署Java Web应用程序到Apache Tomcat服务器的过程中,经常会遇到各种各样的问题,其中一种常见的错误就是启动时出现“严重:Exception starting filters struts2”这样的异常信息。本文将详细解析这个错误的原因,...
本文旨在解决Idea中导入SSM项目启动Tomcat时报错404的问题,提供了一种有效的解决方案。该方案通过在pom文件中添加特定的配置信息,解决了Idea无法识别Tomcat和JDK的问题。 一、问题描述 在使用Idea开发SSM项目时,...
修改Tomcat的配置,用于对Tomcat中启动时报内存溢出的情况解决。修改java虚拟机的内存占用大小
在Tomcat服务器上,解决这个问题的方法是设置一个全局的错误页面,将所有404错误重定向到`index.html`,这是Vue应用的入口文件,Vue Router会处理接下来的路由导航。 首先,你需要在你的Vue项目打包后的文件夹...
主要介绍了Web项目打成war包部署到tomcat时报MySQL Access denied for user 'root'@'localhost' (using password: YES)错误解决方案(推),需要的朋友可以参考下
- 将下载的JBoss压缩包解压至一个合适的目录中。 - 注意:解压目录及其父目录中不能包含空格,否则可能会导致无法找到文件或类的错误。 #### 步骤二:配置服务器 1. **打开MyEclipse配置界面**: - 在...
* java.io.EOFException: Tomcat 启动时报错 + 解决方案:检查 Tomcat 的配置文件是否正确,是否存在语法错误或格式不正确的问题。 * Tomcat 内存溢出 + 解决方案:检查 Tomcat 的 JVM 参数设置,是否存在内存溢出...
- 在 Jenkins 的系统管理 -> 环境变量中新增一个全局环境变量,其值为 SDK 的绝对路径。 - 注销 `local.properties` 文件中的 SDK 路径,并将其提交到版本控制系统中,这样 Jenkins 就可以使用正确的 SDK 路径了。 ...
**Servlet** 是Java平台上的一个重要的技术标准,主要用于Web应用程序开发。它提供了一种在服务器端运行Java代码的方法,以便处理HTTP请求并生成响应。Servlet是Java Web开发的基础之一。 - **作用:** - **接收...
解决这类问题通常需要移除项目中的内置Tomcat服务,并导入Tomcat API依赖。不过,在一些案例中,测试表明无需进行此操作,直接打包即可成功。 如果在打包过程中遇到任何疑问,建议直接联系文章作者,作者承诺会及时...