Eclipse不会将jar部署到WEB-INF / lib目录中

时间:2010-08-03 13:30:43

标签: eclipse spring maven-2 jsf

为了将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没有与草案打包在一起的问题。 你知道如何解决它吗?

8 个答案:

答案 0 :(得分:7)

eclipse项目右键单击 - &gt;属性 - &gt;部署组件 - &gt;添加 - &gt; Java构建路径条目可以。

答案 1 :(得分:1)

未添加到lib文件夹的库正在同一个工作区中开发,我建议在库项目的项目属性中启用“Utility Module”facet 。有时Eclipse不会将jar复制到WEB-INF / lib文件夹中,即使其他所有配置都正确。

答案 2 :(得分:1)

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

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

至于我,我得到了同样的错误,我注意到我错过了我的pom.xml中的依赖

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

答案 3 :(得分:1)

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

右键单击项目选择maven&gt; updateproject&gt;选择强制更新快照&gt;行。

答案 4 :(得分:0)

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

另外,请确保在pom.xml

中包含以下内容
    <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring</artifactId>
         <version>${your.spring.version}</version>
    </dependency> 

答案 5 :(得分:0)

  

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

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

  

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

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

  

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

我不确定我明白你的意思。运行mvn install时你得到了什么?战争看起来不错吗?你能真正展示你的pom.xml吗?

答案 6 :(得分:0)

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

答案 7 :(得分:0)

您已经通过在项目管理员中选择项目来更新项目,然后选择 运行Maven->更新项目...

确保通过选择项目属性在更新后,在Depluyment程序集中将Maven Dependencies作为源链接到WEB-INF作为Deploy路径。如果没有,只需单击“添加...”按钮,选择“ Java Buid Path Entries”,单击“下一步”,然后选择“ Maven依赖关系”即可添加它。

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