Tomcat无法从Eclipse部署我的Web项目

30

我正在开发一个Web应用程序。直到昨天一切都运行正常。

昨天发生了一些事情(确切地说我不知道是什么),现在Eclipse不能再部署我的应用程序了。

我使用的是Spring和Maven,但以前它是可以工作的,所以我认为这方面没有问题。

当我启动我的应用程序时,启动日志中会出现以下信息:

7.9.2012 12:39:23 org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jdk1.6.0_31\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files (x86)/Java/jre6/bin/client;C:/Program Files (x86)/Java/jre6/bin;C:/Program Files (x86)/Java/jre6/lib/i386;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files (x86)\CVSNT\;c:\Programs\apache-ant-1.8.1\bin;C:\Program Files (x86)\Common Files\Teleca Shared;C:\SSD\Oracle11g\product\11.2.0\dbhome_3\bin;C:\SSD\Oracle11g\product\11.2.0\dbhome_1\bin;C:\Program Files (x86)\Groovy\Groovy-1.8.6\bin;C:\Programs\TortoiseSVN-1.7.7\bin;c:\Programs\apache-ant-1.8.1\bin;c:\Program Files\Java\jdk1.6.0_31\bin;c:\Programs\cygwin\bin;c:\Programs\apache-maven-2.2.1\bin;C:\SSD\Mudrc\Eclipse;;.
7.9.2012 12:39:23 org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:MudrcWeb2' did not find a matching property.
7.9.2012 12:39:23 org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-9091"]
7.9.2012 12:39:23 org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
7.9.2012 12:39:23 org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 491 ms
7.9.2012 12:39:23 org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
7.9.2012 12:39:23 org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.29
7.9.2012 12:39:24 org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-9091"]
7.9.2012 12:39:24 org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
7.9.2012 12:39:24 org.apache.catalina.startup.Catalina start
INFO: Server startup in 693 ms

在我使用Spring时,日志中应该至少有上下文初始化的记录。

我在这里阅读了几个类似的问题:

但是没有什么帮助。

我尝试在Eclipse中添加新服务器,重命名项目,清理项目等,但问题仍然存在。

当我使用Maven构建它并部署到Tomcat时,它可以正常工作。


实际上,你提供的类似问题的链接“Tomcat started in eclipse but unable to connect to link to http://localhost:8085/”解决了我的问题。感谢您发布研究链接! - mojoken
4
我认为真正的问题在于缺乏解释有关Eclipse/Tomcat集成存在的问题的信息,这总是一个随机的过程。 - pojo-guy
17个回答

27

您是否检查过在服务器位置中的部署路径(deploy path)?也许您的Tomcat部署路径已更改,Eclipse无法部署您的应用程序。

在Eclipse中:

  1. 选择窗口 -> 显示视图 -> 服务器。
  2. 双击您的服务器。
  3. 在Tomcat服务器的概述中:

    3.1 检查您的服务器路径。

    3.2 检查您的部署路径。


16
非常有帮助,我意识到并不是所有我期望的文件都在那里。解决我的问题的方法是右键单击项目 > Maven > 更新项目配置。 - Betlista
1
今天我正在使用 mvn eclipse:eclipse 命令生成 .project 和 .classpath 文件。 - Betlista
有时候 .project 文件在 <nature> 标签下可能没有足够的条目。 是的,右键单击项目 > Maven > 更新项目配置对我有效,就像 @Betlista 建议的那样。 - Paramesh Korrakuti
1
对我来说,更具体的修复方法是将默认的Eclipse(Mars Release 2)部署路径替换为Tomcat安装的webapps子目录。 - Mark A. Fitzgerald

13

可能项目属性中缺少部署Maven汇编:

在此输入图片描述


不要这样做!请阅读第二条评论。https://bugs.eclipse.org/bugs/show_bug.cgi?id=430465 - T3rm1
1
这是我唯一的解决方案,我尝试了所有其他方法。在开发环境中,我可以接受库的额外开销。 - Tobia

7
我有一个类似的问题,即可以启动Tomcat服务器,但应用程序未初始化或启动,因此我右键单击我的项目 -> 部署装配 -> 在右侧面板中单击“添加”,选择“Java构建路径条目”并单击“下一步”,现在选择“Maven依赖项”并单击“完成”。现在我运行服务器,它成功地启动了应用程序。

enter image description here enter image description here
enter image description here


两次救了我的一天。非常感谢。 - sarwar026

5

4

我曾经遇到过这个问题,我只是从eclipse中删除了服务器并重新配置它...然后一切都开始正常工作了...我遇到过两三次同样的问题,但同样的方法奏效。


2

遇到了同样的问题,升级从Spring v3.2.xv4.2.x后才出现这个问题。

通过以下步骤解决:

  1. 清除所有eclipse文件[.classpath, .project, .settings/].
  2. 执行命令 >mvn eclipse:eclipse
  3. eclipse>project>properties>deployment中添加 [referenced projects, additional classpaths].

PublishStart模块在Tomcat标签下,现在应该能正常启动。


2

删除服务器....... Window -> Show View -> Servers. 右键点击 - > 删除

在项目中右键点击 运行配置

然后再次添加服务器......


1

我遇到了同样的问题。我通过在org.eclipse.wst.common.project.facet.core.xml中添加以下条目来解决它。

<runtime name="Apache Tomcat v7.0" />

现在这个完整的文件看起来像这样 -
<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
    <runtime name="Apache Tomcat v7.0" />
    <fixed facet="wst.jsdt.web" />
    <installed facet="java" version="1.5" />
    <installed facet="jst.web" version="2.3" />
    <installed facet="wst.jsdt.web" version="1.0" />
</faceted-project>

你的解决方案能和我一起工作...但它能永久地工作吗? - sam
抱歉兄弟...那是很久以前的事了,我甚至不记得为什么或者怎么发生的了...但总的来说,我认为它应该永远都能工作... - Popeye

0

请在eclipse中查看您的Web项目中的org.eclipse.wst.common.component文件。

<wb-module deploy-name="PROJECT_NAME">

检查PROJECT_NAME。它可能会出错。类似地,请查阅.project文件。

希望这可以帮助您!


0
我发现适用于我的唯一方法是在“Web 部署程序集”中添加条目:

项目 webapp > 属性 > 部署程序集
添加...
源: "/target/classes"
部署路径: "WEB-INF/classes"


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接