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

时间:2013-03-12 15:39:50

标签: java eclipse tomcat war

我要告诉你我所做的所有步骤。我还会给一些照片让我的问题更容易理解。任何建议都会很好。

有必要说我使用

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

Eclipse 3.7(Indigo)

eclipse 3.7的谷歌插件(用于与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 - &gt;运行为 - &gt;在服务器上运行)。而且它部署在同一目录中(我的意思是c:\ Users \ username \ AppData \ Local \ VirtualStore \ Program Files \ Apache Software Foundation \ Tomcat 6.0 \ webapps)。我不明白为什么!是什么原因?

4)然后我尝试在桌面上导出WAR文件(我的意思是GWT Project)。它很好,然后我手动将war文件放到C:\ Program Files \ Apache Software Foundation \ Tomcat 6.0 \ webapps(Tomcat仍在工作)。

5)另一个问题是 Tomcat没有解压缩WAR文件。我没有尝试在Web浏览器中加载它(http://localhost:8080/helloserver)。而且我手动解压缩WAR文件并将helloserver目录放到webapps上并且它可以工作!一切正常。

1 个答案:

答案 0 :(得分:2)

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

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

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

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

我将猜测并假设后续问题来自尝试(由您尝试使其工作,或由Windows / eclipse作为后备启动)以使用文件复制部署方案,它被重定向,因为它是应用程序存储方案的本地。

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