【发布时间】:2013-08-06 14:58:40
【问题描述】:
这个问题我有一段时间了。我尝试了很多失败的事情,以至于我不得不切换到 netbeans 以便能够开发。但是netbeans缺少一些重要的特性,所以我真的需要这个才能在eclipse中工作。
从头开始: 我有一个“父”maven 项目,在我们的 svn 存储库中有几个模块。其中 2 个模块是我需要在 tomcat 服务器中部署的 Web 项目。这些 web 项目有几个依赖项,其中包括父 maven 项目的其他模块。
我在 eclipse ganymede 上运行了这个配置,但是 3 周前我开始在启动服务器时收到 ClassNotFoundExceptions,我不知道为什么会出现这种情况。
从那时起,我一直在尝试获取新的 Eclipse (Java EE) 包,但无论我怎么做,都会发生这种情况:
- 我得到了运行 maven+svn 的 eclipse,并将我的 tomcat 安装添加到 eclipse 的服务器列表中。
- 我查看了父项目,其中包括模块。 Eclipse 为我提供了完整的项目列表。
- 废话开始:我无法将 2 个 Web 项目添加到 tomcat,它告诉我不能添加任何项目(意思是“你没有任何 Web 项目!”)。此外,我不能在 Servlet 类上选择“运行方式 -> 在服务器上运行”(“选择不包含任何可以在服务器上运行的资源”),即使它们明确扩展了 HttpServlet。由于我在这方面花费了太多时间,我发现了如何处理这个问题:将项目转换为项目属性中的“分面项目”。
- 现在我可以将两个项目都添加到 tomcat 服务器了
-
启动服务器时,我得到
致命:加载 WebappClassLoader 时出错 上下文:/BEWeb 委托人:假 存储库: /WEB-INF/类/ ----------> 父类加载器: org.apache.catalina.loader.StandardClassLoader@55ae3b4d de.comp.utils.servlet.SInvokerServlet
该类位于列为依赖项的模块之一中
-
已部署项目的
WEB-INF/lib为空。根本没有库,maven 和/或 eclipse 并没有像 3 周前那样做。
我尝试弄乱.settings 以及.project 和.classpath 中的eclipse 文件,但没有任何用处。
有人可以指出我正确的方向吗?如果您需要我,我会从头开始做所有事情,这不会有什么不同,因为我已经做了很多次了(使用不同版本的 eclipse、maven、tomcat ......)
如果您需要我发布任何文件,我很乐意遵守。
由于这让我在相当长的一段时间内夜不能寐,所以我会悬赏这个。 到目前为止,谢谢。
=================================
编辑以回答即将出现的问题
只是检查一下:从命令行构建项目并手动部署它们确实有效,对吧?
是的,mvn package 工作正常,将 .war 文件复制到 tomcat 会导致应用程序正常工作,war 文件也包含所有依赖项。
当您说“获取新的 Eclipse (Java EE) 包”时,您的意思是您现在正在使用 Eclipse Indigo (3.7)?
是的。但是我在 3.5 中遇到了同样的问题,eclipse 版本的行为没有任何差异。
当您说“我在运行 maven+svn 的情况下运行 eclipse”时,您是使用 m2eclipse 还是使用 maven eclipse 插件生成 eclipse 配置?
我已安装 m2e 并使用“右键单击 -> Checkout as Maven Project”从 svn 签出项目。虽然存储库中没有特定于 Eclipse 的文件,但它们似乎是在结帐时生成的。
当我使用mvn eclipse:eclipse,然后关闭+重新打开项目时,我无法将它们添加到tomcat服务器(“没有可以从服务器添加或删除的资源”),这意味着eclipse无法将它们识别为web项目.
【问题讨论】:
-
只是检查一下:从命令行构建项目并手动部署它们确实有效,对吧?
-
当您说“获取新的 Eclipse (JEE) 包”时,您的意思是您现在正在使用 Eclipse Indigo (3.7)?
-
当你说“我得到运行 maven+svn 的 eclipse”时,你是使用 m2eclipse 还是使用 maven eclipse 插件生成 eclipse 配置?
标签: eclipse svn maven dependencies war