【问题标题】:Eclipse does not deploy jars into WEB-INF/lib directoryEclipse 不会将 jar 部署到 WEB-INF/lib 目录中
【发布时间】:2011-03-24 17:46:06
【问题描述】:

为了将 JSF 与 Spring 集成,我在 web.xml 中添加了这些行:

<context-param>  
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>  
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>  
    <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>

我已经使用 Maven 添加了所有 spring 依赖项,但是当我运行项目时,我收到以下错误消息:

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

当我浏览/WEB-INF/lib 文件夹时,我没有发现任何JAR 文件,尽管在pom.xml 中声明了依赖项。

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>${spring.version}</version>
</dependency>

我认为 JAR 没有与草稿打包的问题。 你知道如何解决它吗?

【问题讨论】:

  • 欢迎来到 Stackoverflow!要格式化代码,您只需将其缩进 4 个空格。您可以手动执行此操作,也可以通过选择代码片段然后按消息编辑器工具栏中的010101 按钮或Ctrl+K 键来执行此操作。您不需要引用代码和/或格式错误的 HTML/XML 元素:)
  • 实际上,我是 stackoverflow 的新手,我试图让我的代码尽可能地可见,但我错过了正确的信息:) 谢谢你提供的信息

标签: eclipse spring maven-2 jsf


【解决方案1】:

eclipse项目右键->属性->部署组件->添加->Java Build Path Entry就可以了。

【讨论】:

  • ... -> Java 构建路径条目 -> Maven 构建依赖项
【解决方案2】:

如果未添加到 lib 文件夹的库正在同一个工作区中开发,我建议在库项目的项目属性中启用“实用程序模块”方面。有时即使其他所有配置正确,Eclipse 也不会将 jar 复制到 WEB-INF/lib 文件夹中。

【讨论】:

    【解决方案3】:

    Maven 依赖项存储在 ~/.m2。如果你运行 mvn install 并直接部署(使用 Jetty 或 Tomcat 插件),WEB-INF/lib 中不会有任何 jar 文件。

    另一方面,如果您运行 mvn package 来构建 WAR,则 WAR 应该包含部署应用程序所需的所有 jar。您可以使用unzip &lt;file.war&gt; 解压缩此 WAR 文件并检查您的 jar 是否存在。

    至于我,我遇到了同样的错误,我注意到我的 pom.xml 中缺少一个依赖项

    <dependency>
       <groupId>org.springframework</groupId>
       <artifactId>spring-web</artifactId>
       <version>${spring.version}</version>
    </dependency>
    

    【讨论】:

      【解决方案4】:

      进行了 maven force 更新,然后安装了构建并在 tomcat 上运行,因为能够在 webapp/libs 中找到 jars。

      右键项目选择maven > updateproject > 选择force update snapshots > OK.

      【讨论】:

        【解决方案5】:

        您已通过在 project exlorer 中选择项目来更新项目并选择 运行 Maven->更新项目...

        确保更新后,通过选择项目属性,在部署程序集中,您将 Maven 依赖项作为源链接到 WEB-INF 作为部署路径。如果没有,只需单击 Add... 按钮、选择 Java Buid Path Entries、单击下一步按钮并选择 Maven Dependences 即可添加它。

        然后 Eclipse 必须在服务器中部署库。

        【讨论】:

          【解决方案6】:

          我已经使用 Maven 添加了所有 spring 依赖项,但是当我运行项目时,我收到以下错误消息 (...)

          您如何运行该项目?你用 m2eclipse 吗?你是如何创建这个项目的?您是否将现有的 Maven 项目导入 Eclipse?

          当我浏览文件夹 /WEB-INF/lib 时,我发现没有 JAR 文件,尽管在 pom.xml 中声明了依赖项

          依赖项看起来不错,但是... WEB-INF/lib 文件夹是什么?具体在哪里? AFAIK,m2eclipse 不会真正将 jar 包“部署”到 WEB-INF/lib 中(但它会创建一个包含它们的自定义类路径)。

          我认为 JAR 没有与草稿打包的问题。你知道如何解决它吗?

          我不确定我是否理解您的意思。运行mvn install 会得到什么?战争看起来好吗?你真的可以显示你的pom.xml吗?

          【讨论】:

          • 感谢您对 maven 的回复,我使用 m2eclipse,当我执行 mvn: install 时,我收到消息 BUILD SUCCESSFUL。但是,当我运行 Web 项目时,我收到错误消息,表明某些类不存在,尽管它们包含在 jar 中。所以我发现Eclipse没有部署依赖项所以我发现Eclipse没有部署依赖项即使项目的jar不包含任何jar并且它的大小很小(18 kb)
          • @user405458:正如我所写,maven(在目标中)创建的战争看起来还可以吗?这是首先要确认的事情。
          【解决方案7】:

          org.springframework.web.context.ContextLoaderListenerorg.springframework.web.context.request.RequestContextListener 都存在于 spring-web 包中,至少在最常见的 2.5 版本中。

          另外,请确保您在 pom.xml 中包含以下内容

              <dependency>
                   <groupId>org.springframework</groupId>
                   <artifactId>spring</artifactId>
                   <version>${your.spring.version}</version>
              </dependency> 
          

          【讨论】:

          • 其实我用的是Spring 3.0.3还有更多的spring.jar,这个文件分为几个模块我包括“org.springframework.Spring-web.jar”..但是文件 jar 没有部署在 WEB-INF/lib 中的问题,我认为它们没有与项目打包,这可能是问题
          【解决方案8】:

          老问题,但我有这个问题。通过切换到 JDK 而不是 JRE 来修复!

          【讨论】:

          • 然后还有其他问题。此“开关”无法解决此问题。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-04-30
          • 2011-01-31
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-08-16
          相关资源
          最近更新 更多