Lösen Sie das Problem des IDEA-Konfigurations-Tomcat-Startfehlers

Lösen Sie das Problem des IDEA-Konfigurations-Tomcat-Startfehlers

Beim Konfigurieren unterschiedlicher Servlet-Pfade sind die folgenden beiden Fehler aufgetreten:

java.lang.NoSuchMethodError: javax.servlet.ServletContext.getVirtualServerName()Ljava/lang/String;
java.lang.ClassNotFoundException: org.apache.jsp.index_jsp;

Zur ersten Frage habe ich viele Informationen online gesucht und festgestellt, dass die Ursache möglicherweise ein Konflikt in der Tomcat-Version ist. Das Catalina-Protokoll lautet wie folgt:

19. Februar 2018 08:26:44.175 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Serverversion: Apache Tomcat/8.5.28
19. Februar 2018 08:26:44.175 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server erstellt: 6. Februar 2018 23:10:25 UTC
19. Februar 2018 08:26:44.175 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Servernummer: 8.5.28.0
19. Februar 2018 08:26:44.191 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Betriebssystemname: Windows 7
19. Februar 2018 08:26:44.191 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Betriebssystemversion: 6.1
19. Februar 2018 08:26:44.191 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architektur: x86
19. Februar 2018 08:26:44.191 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: C:\Programme\Java\jdk1.8.0_141\jre
19. Februar 2018 08:26:44.191 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM-Version: 1.8.0_141-b15
19. Februar 2018 08:26:44.191 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM-Anbieter: Oracle Corporation
19. Februar 2018 08:26:44.191 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: F:\apache-tomcat-8.5.28
19. Februar 2018 08:26:44.191 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: F:\apache-tomcat-8.5.28
19. Februar 2018 08:26:44.191 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Befehlszeilenargument: -Djava.util.logging.config.file=F:\apache-tomcat-8.5.28\conf\logging.properties
19. Februar 2018 08:26:44.191 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Befehlszeilenargument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
19. Februar 2018 08:26:44.191 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Befehlszeilenargument: -Djdk.tls.ephemeralDHKeySize=2048
19. Februar 2018 08:26:44.191 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Befehlszeilenargument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
19. Februar 2018 08:26:44.191 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Befehlszeilenargument: -Dignore.endorsed.dirs=
19. Februar 2018 08:26:44.191 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Befehlszeilenargument: -Dcatalina.base=F:\apache-tomcat-8.5.28
19. Februar 2018 08:26:44.191 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Befehlszeilenargument: -Dcatalina.home=F:\apache-tomcat-8.5.28
19. Februar 2018 08:26:44.191 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Befehlszeilenargument: -Djava.io.tmpdir=F:\apache-tomcat-8.5.28\temp
19.02.2018 08:26:44.191 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Geladene APR-basierte Apache Tomcat Native-Bibliothek [1.2.16] unter Verwendung der APR-Version [1.6.3].
19.02.2018 08:26:44.206 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR-Funktionen: IPv6 [true], sendfile [true], Accept-Filter [false], Random [true].
19. Februar 2018 08:26:44.206 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL-Konfiguration: useAprConnector [false], useOpenSSL [true]
19. Februar 2018 08:26:44.830 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL erfolgreich initialisiert [OpenSSL 1.0.2m 2. November 2017]
19. Februar 2018 08:26:45.080 INFO [main] org.apache.coyote.AbstractProtocol.init Initialisierung des ProtocolHandlers ["http-nio-8080"]
19.02.2018 08:26:45.517 INFO [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Verwenden eines gemeinsamen Selektors zum Schreiben/Lesen von Servlets
19. Februar 2018 08:26:45.581 INFO [main] org.apache.coyote.AbstractProtocol.init Initialisierung des ProtocolHandlers ["ajp-nio-8009"]
19.02.2018 08:26:45.597 INFO [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Verwenden eines gemeinsamen Selektors zum Schreiben/Lesen von Servlets
19. Februar 2018 08:26:45.597 INFO [main] org.apache.catalina.startup.Catalina.load Initialisierung in 2422 ms verarbeitet
19.02.2018 08:26:45.643 INFO [main] org.apache.catalina.core.StandardService.startInternal Dienst wird gestartet [Catalina]
19. Februar 2018 08:26:45.643 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Servlet-Engine wird gestartet: Apache Tomcat/8.5.28
19. Februar 2018 08:26:45.675 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Bereitstellung des Web-Anwendungsverzeichnisses [F:\apache-tomcat-8.5.28\webapps\docs]
19-Feb-2018 08:26:46.423 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Die Bereitstellung des Web-Anwendungsverzeichnisses [F:\apache-tomcat-8.5.28\webapps\docs] wurde in [748] ms abgeschlossen.
19. Februar 2018 08:26:46.423 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Bereitstellung des Web-Anwendungsverzeichnisses [F:\apache-tomcat-8.5.28\webapps\examples]
19. Februar 2018 08:26:47.059 SCHWER [localhost-startStop-1] org.apache.catalina.core.ContainerBase.addChildInternal ContainerBase.addChild: Start:
org.apache.catalina.LifecycleException: Komponente [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/examples]] konnte nicht gestartet werden.
bei org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
bei org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:752)
bei org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:728)
bei org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
bei org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1141)
bei org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1875)
bei java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
bei java.util.concurrent.FutureTask.run(FutureTask.java:266)
bei java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
bei java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
bei java.lang.Thread.run(Thread.java:748)
Verursacht durch: org.apache.catalina.LifecycleException: Komponente [Pipeline[StandardEngine[Catalina].StandardHost[localhost].StandardContext[/examples]]] konnte nicht gestartet werden.
bei org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
bei org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5125)
bei org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 10 mehr
Ursache: org.apache.catalina.LifecycleException: Komponente [org.apache.catalina.authenticator.FormAuthenticator[/examples]] konnte nicht gestartet werden.
bei org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
bei org.apache.catalina.core.StandardPipeline.startInternal(StandardPipeline.java:182)
bei org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 12 mehr
Verursacht durch: java.lang.NoSuchMethodError: javax.servlet.ServletContext.getVirtualServerName()Ljava/lang/String;
bei org.apache.catalina.authenticator.AuthenticatorBase.startInternal(AuthenticatorBase.java:1186)
bei org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 14 mehr

19.02.2018 08:26:47.075 SEVERE [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Fehler beim Bereitstellen des Web-Anwendungsverzeichnisses [F:\apache-tomcat-8.5.28\webapps\examples]
java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Komponente [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/examples]] konnte nicht gestartet werden.
bei org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:756)
bei org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:728)
bei org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
bei org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1141)
bei org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1875)
bei java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
bei java.util.concurrent.FutureTask.run(FutureTask.java:266)
bei java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
bei java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
bei java.lang.Thread.run(Thread.java:748)

Ich habe zuerst versucht, andere Tomcat-Versionen zu entfernen, die Tomcat-Umgebungsvariablen neu zu konfigurieren und Tomcat erneut bereitzustellen. Ich stellte fest, dass das Problem nicht gelöst war, suchte also erneut im Internet und fand heraus, dass getContextPath() spezifisch für servlet2.5 ist. Versuchen Sie daher, die Datei servlet-api.jar im ursprünglichen JAR-Paket zu löschen und das Projekt dann erneut bereitzustellen. Das zweite Problem wurde gefunden, das Protokoll lautet wie folgt:

19.02.2018 09:59:51.534 SCHWER [http-nio-8080-exec-3] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() für Servlet [jsp] im Kontext mit Pfad [/Happy] hat die Ausnahme [java.lang.ClassNotFoundException: org.apache.jsp.index_jsp] mit der Grundursache ausgelöst.
java.lang.ClassNotFoundException: org.apache.jsp.index_jsp
bei java.net.URLClassLoader.findClass(URLClassLoader.java:381)
bei org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:129)
bei org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:60)
bei org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:159)
bei org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:171)
bei org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:380)
bei org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386)
bei org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330)
bei javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
bei org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
bei org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
bei org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
bei org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
bei org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
bei org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
bei org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
bei org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
bei org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
bei org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
bei org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
bei org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
bei org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
bei org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
bei org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790)
bei org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
bei org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
bei java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
bei java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
bei org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
bei java.lang.Thread.run(Thread.java:748)

19.02.2018 10:03:45.289 SEVERE [http-nio-8080-exec-1] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() für Servlet [jsp] im Kontext mit Pfad [/Happy] hat die Ausnahme [Klasse kann für JSP nicht kompiliert werden] mit der Grundursache ausgelöst.
java.lang.ClassNotFoundException: com.sun.el.ExpressionFactoryImpl
bei org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1291)
bei org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1119)
bei javax.el.FactoryFinder.newInstance(FactoryFinder.java:83)
bei javax.el.FactoryFinder.find(FactoryFinder.java:193)
bei javax.el.ExpressionFactory.newInstance(ExpressionFactory.java:185)
bei javax.el.ExpressionFactory.newInstance(ExpressionFactory.java:156)
bei org.apache.jasper.compiler.PageInfo.<init>(PageInfo.java:80)
bei org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:117)
bei org.apache.jasper.compiler.Compiler.compile(Compiler.java:374)
bei org.apache.jasper.compiler.Compiler.compile(Compiler.java:351)
bei org.apache.jasper.compiler.Compiler.compile(Compiler.java:335)
bei org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:595)
bei org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:368)
bei org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386)
bei org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330)
bei javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
bei org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
bei org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
bei org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
bei org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
bei org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
bei org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
bei org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
bei org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
bei org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
bei org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
bei org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
bei org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
bei org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
bei org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
bei org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790)
bei org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
bei org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
bei java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
bei java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
bei org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
bei java.lang.Thread.run(Thread.java:748)

Nach erneuter Überprüfung der Angaben stellte ich fest, dass das JAR-Paket fehlte. Da im erweiterten JAR-Paket von jdk1.8 keine Servlet-bezogene API vorhanden ist, schlägt der Import von IDEA fehl.

Zu diesem Zeitpunkt müssen Sie das JAR-Paket importieren. Zuvor habe ich die entsprechende API heruntergeladen

Legen Sie es dann in das folgende Verzeichnis

Um das Problem fehlender JAR-Pakete zu vermeiden, wird empfohlen, servlet-api.jar direkt im Lib-Verzeichnis unter dem Tomcat-Verzeichnis zu suchen und direkt nach ext zu kopieren. Stellen Sie Tomcat dann erneut bereit und das Problem ist gelöst.

Zusammenfassen

Dies ist das Ende dieses Artikels zur Lösung des Problems des Startfehlers bei der IDEA-Konfiguration von Tomcat. Weitere relevante Inhalte zum Startfehler bei der IDEA-Konfiguration von Tomcat finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • SpringBoot integriert WebSocket, um die Methode der Front-End- und Back-End-Nachrichtenübertragung zu realisieren
  • Einfaches Springboot-WebSocket-Beispiel
  • SpringBoot integriert WebSocket [basierend auf reinem H5] für Punkt-zu-Punkt [eins-zu-eins] und Broadcast [eins-zu-viele] Echtzeit-Push
  • SpringBoot webSocket implementiert das Senden von Broadcasts, Punkt-zu-Punkt-Nachrichten und das Empfangen von Android
  • Tomcat-Startfehler: Lösung für java.util.zip.ZipException
  • Lösung für Tomcat-Startfehler unter CentOS 6.5
  • Lösen Sie das Problem, dass SpringBoot-WebSocket-Ressourcen nicht geladen werden können und Tomcat-Startfehler auftreten

<<:  MySQL-Variablenprinzipien und Anwendungsbeispiele

>>:  Vue3.0 implementiert die Kapselung des Dropdown-Menüs

Artikel empfehlen

So erstellen Sie eine Datenbank in Navicat 8 für MySQL

Beim Entwickeln einer Website müssen Sie häufig e...

Verwendung der MySQL-Anweisung „truncate table“

Mit der Anweisung „Truncate table“ werden alle Da...

Detaillierte Erklärung der Verwendung von SetUp- und Reactive-Funktionen in Vue3

1. Wann soll setUp ausgeführt werden? Wir alle wi...

Detaillierte Installation und Verwendung von SSH in der Ubuntu-Umgebung

SSH steht für Secure Shell, ein sicheres Übertrag...

5 Punkte, auf die Sie beim Erstellen einer Webseite achten sollten

1. Farbabstimmungsproblem <br />Eine Webseit...

Ausführliche Erläuterung der gespeicherten MySQL-Prozeduren (in, out, inout)

1. Einleitung Es wird seit Version 5.0 unterstütz...

Grundlegendes zu MySQL-Clusterindizes und wie Clusterindizes wachsen

In dieser Anmerkung beschreiben wir kurz Was ist ...

Beispielcode zur Implementierung einer Auto-Increment-Sequenz in MySQL

1. Erstellen Sie eine Sequenztabelle CREATE TABLE...