运行结束或配置出错

运行结束或配置出错,第1张

解决IDEA配置tomcat启动报错问题

本文主要介绍如何解决IDEA配置tomcat的启动错误问题。这篇文章给你做了非常详细的介绍,对你的学习或者工作有一定的参考价值。有需要的朋友可以参考一下。

在配置servlet的不同路径时遇到了以下两个错误:

Java.lang.nosuchmethoderror:javax.servlet.servletcontext.getvirtualservername()Ljava/lang/String;
Java.lang.classnotfoundexception:org.Apache.JSP.index_JSP;

关于第一个问题,我在网上查阅了很多资料后发现,可能是tomcat版本冲突造成的。卡特琳娜的日志如下:

19-Feb-201808:26:44.175信息[main]org.Apache.catalina.startup.versionloggerlistener.log服务器版本:ApacheTomcat/8.5.28
19-Feb-201808:26:44.175信息[main]org.Apache.catalina.startup.versionloggerlistener.log服务器构建:FEB6201823:10:JRE
19-Feb-201808:26:44.191信息[main]org.Apache.catalina.startup.Versionloggerlistener.logJVM版本:1.8.0_141-B15
[19-Feb-201808:26:44.191信息[main]org.Apache.catalina.startup.Versionloggerlistener.logJVM供应商:OracleCorporationlogging.properties
19-Feb-201808:26:44.191信息[main]org.apache.catalina.startup.versionloggerlistener.log命令行参数:-DJava.util.logging.manager=org.Apache.juli.classloaderlogmanager
19-Feb-20180808:26:44.191信息[main]org.Apache.catalinaApache-Tomcat-8.5.28
19-Feb-201808:26:44.191信息[main]org.Apache.catalina.startup.versionloggerlistener.log命令行参数:-DJava.io.tmpdir=F:\Apache-Tomcat-8.5.28\Temp
19-Feb-20180808:26:44.191
19-Feb-201808:26:44.206信息[main]org.Apache.catalina.core.aplifecyclelistener.lifecycle事件APR功能:IPv6[true],sendfile[true],acceptfilters[false],Random[true]。
19-Feb-201808:26:44.206信息[main]org.Apache.catalina.core.aplifecyclelistener.lifecycleeventapr/OpenSSL配置:useAprConnector[false],使用OpenSSL[true]
19-Feb-201808:26:44.830信息[main]org.Apache.catalina.core.aplifecyclelistener.initializesslOpenSSL成功初始化[OpenSSL1.0.2m2017年11月2日]
19-Feb-201808:26:45.080信息[main]org.apache.coyote19-Feb-201808:26:45.643信息[main]org.Apache.Catalina.core.standardservice.start内部启动服务[Catalina]
19-Feb-201808:26:45.643信息[main]org.Apache.Catalina.core.standardengine.start内部启动servlet引擎:ApacheTomcat/8.5.28
19-Feb标准主机[本地主机]。standardcontext[/examples]]
atorg.Apache.Catalina.util.lifecyclebase.start(lifecyclebase.Java:167)
atorg.Apache.Catalina.core.containerbase.addchildinternal(containerbase.Java:752)
atorg.Apache.Catalina.core.containerbase.addchild(containerbase.Java:728)[/br标准主机[本地主机]。standardcontext[/examples]]]
atorg.Apache.catalina.util.lifecyclebase.start(lifecyclebase.Java:167)
atorg.Apache.catalina.core.standardcontext.startinternal(standardcontext.Java:5125)
atorg.Apache.catalina.util.lifecyclebase.start(lifecyclebase.Java:150) ...10more
原因:org.Apache.catalina.lifecycle异常:无法在org.Apache.catalina.core.standardpipeline.startinternal(standardpipeline.Java:Java:167)启动组件[org.Apache.catalina.authenticator.formauthenticator[/examples]]
。...12more
原因:Java.lang.nosuchmethoderror:javax.servlet.servletcontext.getvirtualservername()Ljava/lang/String;
atorg.Apache.catalina.authenticator.authenticatorbase.startinternal(authenticatorbase.Java:1186)
atorg.Apache.catalina.util.lifecyclebase.start(lifecyclebase.Java:150)
...14more

19-Feb-201808:26:47.075严重[localhost-startstop-1]org.Apache.catalina.startup.hostconfig.deploy目录部署web应用程序目录时出错[F:\Apache-Tomcat-8.5.28\webapps\examples]
Java.lang.illegalstateexception:containerbase.addchild:start:org:Apache标准主机[本地主机]。standardcontext[/examples]]
atorg.Apache.catalina.core.containerbase.addchildinternal(containerbase.Java:756)
atorg.Apache.catalina.core.containerbase.addchild(containerbase.Java:728)

我首先尝试删除其他tomcat版本,重新配置Tomcat环境变量并重新部署Tomcat。发现并没有解决问题。我又上网查了一下,发现getContextPath()是servlet2.5特有的,所以试着删除原来jar包里的servlet-api.jar,然后重新部署项目。发现第二个问题,日志如下:

19-Feb-201809:59:51.534Serious[http-nio-8080-exec-3]org.Apache.catalina.core.standardwrapperalve.invokeservlet.service()forservlet[JSP]在路径为[/Happy]的上下文中引发了异常[Java.lang.classnotfoundexception:org.Apache.JSP.index_JSP],其根本原因为
Java.lang.classnotfoundexception:org.Apacheh/]19-Feb-201810:03:45.289Serious[http-nio-8080-exec-1]org.Apache.catalina.core.standardwrapper.invokeservlet.service()forservlet[JSP]在路径为[/Happy]的上下文中引发了异常[无法为JSP编译类],其根本原因为
Java.lang.classnotfoundexception:com.sun.El.expressionfactoryimpl
。init>(pageinfo.Java:80)
atorg.Apache.jasper.compiler.generateJava(compiler.Java:117)
atorg.Apache.jasper.compiler.compiler(compiler.Java:374)
atorg.Apache.jasper.compiler.compiler(compiler.Java:351)
atorg.Apache.jasper.compiler

再次查找数据,发现少了jar包。因为jdk1.8的扩展jar包中没有servlet相关的api,所以这个想法会导入失败。

这时候需要导入jar包,之前下载了相关的api。

然后放在下面的目录里。

为了防止jar包的缺失,建议直接在tomcat目录下的lib中找到servlet-api.jar,直接复制到ext。然后重新部署tomcat,解决问题。

摘要

关于解决IDEA配置tomcat启动错误问题的这篇文章到此为止。有关IDEA配置tomcat启动错误的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/774355.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-03
下一篇 2022-05-03

发表评论

登录后才能评论

评论列表(0条)

保存