java - 无法将 Eclipse 创建的 WAR 文件正确部署到 Tomcat

标签 java eclipse tomcat war

我将告诉您我已完成的所有步骤。我还会提供一些图片,使我的问题更容易理解。任何推荐都会很好。

不得不说我用

Tomcat 6(安装在 C:\Program Files\Apache Software Foundation\Tomcat 6.0)

Eclipse 3.7(靛蓝)

用于 eclipse 3.7 的 Google 插件(用于与 GWT 一起使用)

我在 eclipse 中创建了一个服务器 enter image description here 我在 C:\Program Files\Apache Software Foundation\Tomcat 6.0 设置了 $CATALINA_HOME

我还应该说,当我尝试从 Eclipse 运行 Tomcat 时出现异常(我的意思是 R-click on server -> start)。

INFO: Starting Servlet Engine: Apache Tomcat/6.0.36
12 бер 2013 17:01:38 org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory docs
12 бер 2013 17:01:38 org.apache.jasper.EmbeddedServletOptions <init>
SEVERE: The scratchDir you specified: C:\Program Files\Apache Software Foundation\Tomcat 6.0\work\Catalina\localhost\docs is unusable.
12 бер 2013 17:01:38 org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory helloserver
12 бер 2013 17:01:38 org.apache.jasper.EmbeddedServletOptions <init>
SEVERE: The scratchDir you specified: C:\Program Files\Apache Software Foundation\Tomcat 6.0\work\Catalina\localhost\helloserver is unusable.
12 бер 2013 17:01:38 org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory manager
12 бер 2013 17:01:38 org.apache.catalina.startup.HostConfig deployDirectory
SEVERE: Error deploying web application directory manager
java.io.FileNotFoundException: C:\Program Files\Apache Software Foundation\Tomcat 6.0\conf\Catalina\localhost\manager.xml (The system cannot find the path specified)
    at java.io.FileOutputStream.open(Native Method)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:194)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:145)
    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1051)
    at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1002)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:506)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1317)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1065)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
    at org.apache.catalina.core.StandardService.start(StandardService.java:525)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
    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:289)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
12 бер 2013 17:01:38 org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory ROOT
12 бер 2013 17:01:38 org.apache.jasper.EmbeddedServletOptions <init>
SEVERE: The scratchDir you specified: C:\Program Files\Apache Software Foundation\Tomcat 6.0\work\Catalina\localhost\_ is unusable.
12 бер 2013 17:01:38 org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
12 бер 2013 17:01:38 org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
12 бер 2013 17:01:38 org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/28  config=null
12 бер 2013 17:01:38 org.apache.catalina.startup.Catalina start
INFO: Server startup in 722 ms

我检查过我的conf目录下没有目录。

好吧,看我接下来做什么(我使用本手册 http://courses.coreservlets.com/Course-Materials/pdf/ajax/GWT-Intro.pdf ):

1) 创建一个新的 Web 应用程序项目 (GWT)。在 Jetty 上运行良好

2) 我需要导出一个 WAR 文件。 enter image description here

3) 第一个问题(也是我认为的主要问题): WAR 文件没有转到 C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps。但它转到 c:\Users\username\AppData\Local\VirtualStore\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\。此外,我尝试创建一个动态 Web 项目并尝试在服务器上运行它(r-click -> run as -> run on server)。而且它部署在同一目录中(我的意思是 c:\Users\username\AppData\Local\VirtualStore\Program Files\Apache Software Foundation\Tomcat 6.0\webapps)。我不明白为什么!这是什么原因?

4) 然后我尝试在桌面上导出 WAR 文件(我指的是 GWT 项目)。一切顺利,然后我手动将 war 文件放到 C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps(Tomcat 仍在工作)。

5) 另一个问题是 Tomcat 不解压WAR 文件。我尝试在网络浏览器中加载它时没有得到任何结果 (http://localhost:8080/helloserver)。然后我手动解压 WAR 文件并将 helloserver 目录放入 webapps 并且它可以工作!一切正常。

最佳答案

日志文件中的初始错误往往表明您没有安装 tomcat manager 应用程序(或者它可能已安装,但只是配置不正确/禁用)。

尝试通过浏览验证 manager 应用程序是否正常运行

http://youmachine.domain:8080/manager/html

如果您可以登录并看到已安装的 Web 应用程序列表,那么您就知道您的 tomcat 管理器应用程序可以正常运行。

我将猜测并假设后续问题来自尝试(由您发起以试图让它工作,或由 windows/eclipse 作为回退发起)使用文件复制部署方案,并且它正在被重定向,因为它是应用程序存储方案的本地。

你真的想通过管理器应用程序上传 WAR,不要费心去修复复制方案,因为它在后来的 Windows 系统上与虚拟应用程序存储配置方案一起运行。

关于java - 无法将 Eclipse 创建的 WAR 文件正确部署到 Tomcat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15365574/

相关文章:

eclipse - 我们怎样才能在WebStorm中找到新的文件搜索呢?

eclipse - 简单的Tomcat集群部署

java - Eclipse 是否可以配置为禁用派生源文件的警告?

java - Tomcat 和 JDBC 连接池

hibernate - 如何使用 Hibernate 在服务器托管环境中实现连接池机制?

java - 如何从任务内部设置 Var?

java计算器循环无法正常工作

Tomcat 运行,端口 80 连接被拒绝错误

java - 基于 Spring 的 Web 应用程序中的分块 HTTP 响应

java - 是否可以实现tostring字符串方法和printf?