Ich versuche, eine Java-Webanwendung bereitzustellen, die auf Tomcat ausgeführt wird. Ich habe das Buch bekommen
Professionelles Java für Webanwendungen: Mit Websockets, Spring Framework, JPA Hibernate und Spring Security
und ich habe alles getan, damit IntelliJ IDEA 13 mit Tomcat 8.0.9 zusammenarbeiten kann. Ich habe den Servercontainer manuell getestet, und er funktioniert hervorragend. Selbst die Bereitstellung von WAR-Dateien funktioniert hervorragend. Wenn ich jedoch fortfahre, um eine Webanwendung zu starten/zu debuggen - in diesem Fall das erste Beispiel aus dem Buch -, wird die Anwendung von IntelliJ nicht gestartet. Die Ausgabe im Tomcat-Protokoll sagt nicht viel aus.
Die Serverausgabe sagt mir folgendes:
Connected to server
[2014-08-08 09:17:35,075] Artifact Sample-Debug-IntelliJ:war exploded: Artifact is being deployed, please wait...
[2014-08-08 09:17:35,097] Artifact Sample-Debug-IntelliJ:war exploded: Error during artifact deployment. See server log for details.
[2014-08-08 09:17:35,098] Artifact Sample-Debug-IntelliJ:war exploded: com.intellij.javaee.oss.admin.jmx.JmxAdminException: com.intellij.execution.ExecutionException: L:\Java-dev\Java_web_apps_chapter_code\9781118656464 Full Code\Chapter 02\Sample-Debug- IntelliJ\target\sample-debug-intellij-1.0.0.SNAPSHOT not found for the web module.
08-Aug-2014 21:17:44.671 INFO [localhost-startStop-1] org.Apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory L:\Java-dev\Apache-Tomcat-8.0.9\webapps\manager
08-Aug-2014 21:17:44.939 INFO [localhost-startStop-1] org.Apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory L:\Java-dev\Apache-Tomcat-8.0.9\webapps\manager has finished in 268 ms
Tomcat Catalina Log gibt folgendes aus:
08-Aug-2014 22:56:35.843 INFO [main] org.Apache.catalina.core.AprLifecycleListener.init Loaded APR based Apache Tomcat Native library 1.1.30 using APR version 1.4.8.
08-Aug-2014 22:56:35.846 INFO [main] org.Apache.catalina.core.AprLifecycleListener.init APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
08-Aug-2014 22:56:36.652 INFO [main] org.Apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized (OpenSSL 1.0.1g 7 Apr 2014)
08-Aug-2014 22:56:36.738 INFO [main] org.Apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-apr-8080"]
08-Aug-2014 22:56:36.746 INFO [main] org.Apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["ajp-apr-8009"]
08-Aug-2014 22:56:36.747 INFO [main] org.Apache.catalina.startup.Catalina.load Initialization processed in 1060 ms
08-Aug-2014 22:56:36.771 INFO [main] org.Apache.catalina.core.StandardService.startInternal Starting service Catalina
08-Aug-2014 22:56:36.771 INFO [main] org.Apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/8.0.9
08-Aug-2014 22:56:36.778 INFO [main] org.Apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-apr-8080"]
08-Aug-2014 22:56:36.784 INFO [main] org.Apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-apr-8009"]
08-Aug-2014 22:56:36.785 INFO [main] org.Apache.catalina.startup.Catalina.start Server startup in 38 ms
08-Aug-2014 22:56:46.785 INFO [localhost-startStop-1] org.Apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory L:\Java-dev\Apache-Tomcat-8.0.9\webapps\manager
08-Aug-2014 22:56:47.035 INFO [localhost-startStop-1] org.Apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory L:\Java-dev\Apache-Tomcat-8.0.9\webapps\manager has finished in 251 ms
Ich habe sowohl Windows als auch OSX ausprobiert und es ist die gleiche Geschichte bei beiden mit dem gleichen Fehler.
Wenn ich auf http://localhost:8080/
i zugreifen kann, kann der Server laufen. Die Anwendung wird jedoch nicht bereitgestellt.
Hat jemand den gleichen Fehler wie ich und/oder eine Lösung?
Ich verwende IntelliJ IDEA 13.0.3, Java 1.8.0_11 und Tomcat 8.0.9.
EDIT: Ich habe auch mit IntelliJ IDEA 13.1.4 versucht. Machte keinen Unterschied.
Tomcat heruntergeladen, entpackt und folgende Änderungen vorgenommen (Schritt 2-4); In conf/Tomcat-users.xml
habe ich diesen Benutzer hinzugefügt:
<user username="admin" password="admin" roles="manager-gui,admin-gui" />
In conf/web.xml
habe ich den Code unterhalb des org.Apache.jasper.servlet.jspServlet
-Elements hinzugefügt
<init-param>
<param-name>compilerSourceVM</param-name>
<param-value>1.8</param-value>
</init-param>
<init-param>
<param-name>compilerTargetVM</param-name>
<param-value>1.8</param-value>
</init-param>
<init-param>
<param-name>compiler</param-name>
<param-value>modern</param-value>
</init-param>
Laden Sie Apache-ant herunter und fügen Sie mit dem folgenden Skript eine setenv.bat
-Datei im Verzeichnis Apache-Tomcat/bin
hinzu
export CLASSPATH=L:/Java-dev/jdk8/lib/tools.jar:L:/Java-dev/Apache-ant/lib/ant.jar:L:/Java-dev/Apache-ant/lib/ant-launcher.jar
Startete IntelliJ und fügte den Tomcat-Anwendungsserver hinzu.
Dann importierte ich das Projekt und stellte es so ein, dass es den gerade hinzugefügten Tomcat-Server verwendet.
Ich habe versucht, eine JavaEE-Webanwendung bereitzustellen, die von IntelliJ selbst erstellt wurde und die sofort funktioniert hat. Es scheint, als wäre etwas mit dem Quellcode falsch, auf den das Buch verweist.
Ich hatte ein ähnliches Problem. Das Problem bestand in der Artefaktkonfiguration in Run/Debug-Konfigurationen. Ich musste das Projektartefakt entfernen und es lesen. Wichtig ist die Auswahl der Webanwendung: Explodiert, Von Modulen ...
Sie können meinen blog post lesen, der Screenshots zu diesem Problem enthält.
Bei mir funktionierte es mit:
Datei> Projektstruktur> Artefakte In dem Ausgabe-Layout auf der rechten Seite> "Verfügbare Elemente?"
rechtsklick auf die verfügbaren Bibliotheken (für mich war "Spring MVC-4.2.4.RELEASE")
In Lib setzen (klicken Sie tatsächlich auf den Fix-Warntaster)
Und es hat funktioniert.
der lib-Ordner wird im output-Layout hinzugefügt.
artefakt neu aufbauen
Ich hoffe es hilft.
Öffnen Sie "Debug Configuration" in IntelliJ IDEA und stellen Sie sicher, dass das Kontrollkästchen "In Tomcat konfigurierte Anwendungen bereitstellen" aktiviert ist, wie auf dem Bildschirm screenshot angezeigt