【问题标题】:Spring maven dependencies not copied in the WEB-INF/lib folderSpring maven 依赖项未复制到 WEB-INF/lib 文件夹中
【发布时间】:2012-04-22 16:40:41
【问题描述】:

在我在 POM 中添加 Spring 依赖项之前,我有一个有效的 GWT-App Engine Web 项目。现在,当我运行应用程序时,会抛出此错误(最终应用引擎不会加载):

java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener

我认为问题在于 Spring jar 未复制到 WEB-INF/lib 文件夹中,因为我在该文件夹中看不到它们。

知道如何将 Spring jar 复制到该文件夹​​吗?

更新:

Here's the complete POM.xml

【问题讨论】:

  • 您如何运行 Web 应用程序 - 从 IDE 或创建战争并手动部署?
  • 没有你的 POM 文本,它只是猜测。粘贴你的 WAR 的 POM(至少 dependenciesbuild 部分),我们会看看那里发生了什么。
  • 请不要发布指向 pastebin 之类的链接——它们会死的。相反,将你的 pom 的内容粘贴到这里(尽管去掉不相关的部分)。

标签: spring gwt maven


【解决方案1】:

添加<packaging>war</packaging>。目前 Maven 不会将任何依赖项工件复制到 WEB-INF/lib,因为这是您迄今为止用于此工件的 jar 打包的默认行为。

【讨论】:

  • 是的,我添加了它。但是我收到了这个奇怪的错误:Description Resource Path Location Type The App Engine SDK 'C:\Users\admin\.m2\repository\com\google\appengine\appengine-api-1.0-sdk\1.5.0\appengine-项目构建路径上的 api-1.0-sdk-1.5.0.jar' 无效(SDK 位置 'C:\Users\admin\.m2\repository\com\google\appengine\appengine-api-1.0-sdk\ 1.5.0\appengine-api-1.0-sdk-1.5.0.jar' 不是目录)MyGwtApp 未知的 Google App Engine 问题
  • 在这种情况下我应该手动删除“appengine-api-1.0-sdk-1.5.0.jar”吗?
  • 一般来说,您应该通过将所有使用的工件添加到 POM 的 dependencies 部分来切换到 Maven 管理的依赖项(就像您已经使用 GWT 所做的那样)。闻起来有些库仍然位于WEB-INF/lib 目录中。你哪里有这个问题?在 Eclipse 中还是在通过 Maven 构建应用程序时?
  • @xybrek - 你可能在 Eclipse 中得到了它。确保 GAE 类路径容器(通常称为“App Engine SDK”)高于 Maven 类路径容器(通常称为“Maven 依赖项”)。在项目属性“Java Build Path”、“Order and Export”中修复此问题
  • @PaulGrime 我意识到 Spring jar 仍然没有复制到 WEB-INF/lib 文件夹中
【解决方案2】:

我认为你应该添加

<packaging>war</packaging>

之后

<groupId>mygwtapp</groupId>
<artifactId>mygwtapp</artifactId>
<version>0.0.1-SNAPSHOT</version>

【讨论】:

  • 是的,我添加了它。但是我收到了这个奇怪的错误:Description Resource Path Location Type The App Engine SDK 'C:\Users\admin\.m2\repository\com\google\appengine\appengine-api-1.0-sdk\1.5.0\appengine-项目构建路径上的 api-1.0-sdk-1.5.0.jar' 无效(SDK 位置 'C:\Users\admin\.m2\repository\com\google\appengine\appengine-api-1.0-sdk\ 1.5.0\appengine-api-1.0-sdk-1.5.0.jar' 不是目录)MyGwtApp 未知的 Google App Engine 问题
  • 您是否与 groupId com.google.appengine 有一些依赖关系?
  • 完全没有,基于我发布的 POM.xml。有一个,但它已被评论。我实际上试过把它放,但是我没有下载 jars。
  • 是的,我正在使用带有 m2eclipse 插件的 Eclipse IDE
【解决方案3】:

将它们作为 Maven 依赖项添加到您的战争中,并确保它们的范围未“提供”。

【讨论】:

    猜你喜欢
    • 2015-02-28
    • 1970-01-01
    • 2012-09-10
    • 2011-06-25
    • 2014-11-24
    • 2011-08-30
    • 2020-10-08
    • 2011-03-26
    • 2012-06-30
    相关资源
    最近更新 更多