7

我刚刚从 Helios 切换到 Eclipse Indigo,在尝试使用 WTP 在 Tomcat 6 上运行支持 Maven 的 Web 项目时遇到了一些麻烦。

我遇到了 Tomcat 没有看到 Maven 依赖项的经典问题。在 Helios 中,解决方法是通过以下方式将 Maven 依赖项添加到部署程序集:项目属性 -> 部署程序集 -> 添加“Java 构建路径条目”-> Maven 依赖项

不幸的是,没有列出“Java Build Path Entries”选项,只有“文件夹”和“项目”。我不确定这是否是故意的,或者我的设置是否有问题。

为了消除外部因素,我使用以下设置:

  • 全新安装 Eclipse Indigo (Mac)
  • 清新的工作空间
  • 通过 Eclipse Marketplace 安装的 m2e WTP 集成
  • 创建新的 Maven 项目
  • 添加一些 Maven 依赖项,以及一些使用它们的代码
  • 将项目转换为多面形式
  • 添加“动态 Web 模块”方面
  • Maven > 更新项目配置
  • 添加到 Tomcat 6 服务器
  • 在服务器上运行

在这一点上,我看到了与我缺少的依赖项相关的 ClassNotFoundException。如果我运行 'mvn war:war' 并将组装好的 'WEB-INF/lib' 目录包含在项目的部署程序集中,那么当然可以正确获取依赖项 - 可以快速修复,但并不理想。

我读到的与类似问题有关的大多数问题都归结为缺少 WTP 集成模块,但这对我来说似乎不是问题。

难道我做错了什么?

4

4 回答 4

3

看起来像new maven projectis的包装类型jar。如果是这样,您可以将其更改为war并尝试。

于 2011-08-21T02:06:38.447 回答
1

这是另一个解决方案:固定 .classpath 文件

    <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
           <attributes>
-                   <attribute name="org.eclipse.jst.component.nondependency" value=""/>
+                   <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
            </attributes>
    </classpathentry>
于 2012-04-02T10:28:45.740 回答
1

右键单击项目

  1. 选择部署程序集 > 单击添加

  2. 从弹出窗口中选择 Java build Path Entries,单击 Next

  3. 使用 Ctrl 和鼠标选择所有显示的库

之后,您将看到 .classpath 文件中的更改。

在服务器选项卡中再次发布您的项目。

于 2013-03-13T10:22:40.990 回答
0

另一个与 WTP Tomcat 相关的问题(如果打包已经是 WAR 但未部署库)在 Tomcat 服务器中依赖项的 Eclipse WTP 部署的奇怪行为中得到回答/讨论

于 2012-03-30T09:41:06.683 回答