【发布时间】:2014-10-02 09:30:16
【问题描述】:
我正在尝试部署在 Tomcat 上运行的 Java Web 应用程序。我拿到书了
用于 Web 应用程序的专业 Java:具有 Websockets、Spring Framework、JPA Hibernate 和 Spring Security
我已经完成了让 IntelliJ IDEA 13 与 Tomcat 8.0.9 一起工作的所有工作。我已经手动测试了服务器容器,它运行良好,甚至部署 .war 文件也运行良好。但是,当我继续从 IntelliJ 启动/调试 Web 应用程序时(在本例中是本书的第一个示例),应用程序将无法启动。 Tomcat Log 中的输出并没有多说。
服务器输出告诉我:
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 日志输出如下:
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
我在 Windows 和 OSX 上都试过了,两者都是一样的,但错误完全相同。
当我访问http://localhost:8080/时,我可以看到服务器已启动并正在运行。但是,应用程序并未部署。
任何人遇到与我相同的错误和/或知道解决方案吗?
我正在运行 IntelliJ IDEA 13.0.3、Java 1.8.0_11 和 Tomcat 8.0.9。
编辑:我也尝试过 IntelliJ IDEA 13.1.4。没有任何区别。
采取的步骤
- 已下载 Java 1.8.0_11,安装并添加到环境变量中。
-
下载 Tomcat,解压并对其进行以下更改(步骤 2-4); 在
conf/tomcat-users.xml我添加了这个用户:<user username="admin" password="admin" roles="manager-gui,admin-gui" /> -
在
conf/web.xml中,我在org.apache.jasper.servlet.jspServlet元素下方添加了以下代码<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> -
下载apache-ant并在
apache-tomcat/bin目录下添加setenv.bat文件,脚本如下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 启动 IntelliJ 并添加 Tomcat 应用服务器。
然后我导入项目并设置它使用我刚刚添加的Tomcat服务器。
更新:2014-08-09 16:22
我尝试部署一个由 IntelliJ 自行创建的 JavaEE Web 应用程序,并且该应用程序可以立即运行。书里引用的源代码好像有问题。
【问题讨论】:
-
我看到这个错误:
Artifact Sample-Debug-IntelliJ:war exploded: Error during artifact deployment. See server log for details.你检查日志了吗? -
其实错误是有的:
...Full Code\Chapter 02\Sample-Debug- IntelliJ\target\sample-debug-intellij-1.0.0.SNAPSHOT not found for the web module. -
我不确切知道该消息所指的是哪个日志,因为我检查过的所有日志——除了输出上面发布的消息的服务器日志——没有提及任何错误。虽然我只检查了 IntelliJ 中出现的日志,即服务器、Tomcat Catalina 日志、Tomcat 本地主机日志、Tomcat 管理器日志、Tomcat 主机管理器日志和 Tomcat 本地访问日志。除服务器和 Tomcat Catalina 日志外,所有日志都是空白的。我将在查询中发布 catalina 日志输出的内容。
-
你有没有试过在运行tomcat之前删除setenv.bat?我之前遇到过类似的问题,并通过将我的配置从 setenv.bat 移动到 IntelliJ 运行配置来解决它:stackoverflow.com/questions/20163910/…
-
克里斯蒂安·威尔基,试过了。没用 :-( 将尝试使用早期版本的 Java 和 Tomcat,看看是否有帮助。
标签: java tomcat intellij-idea