当前位置: 首页 > 面试题库 >

Eclipse + Maven + JavaServer Faces-> ClassNotFoundException:StartupServletContextListener

唐焕
2023-03-14
问题内容

摘要

当我尝试从Eclipse内(在Tomcat 7.0上)运行JSF 2.0应用程序时,出现以下异常:

Problem: SEVERE: Error configuring application listener of class org.apache.myfaces.webapp.StartupServletContextListener
java.lang.ClassNotFoundException: org.apache.myfaces.webapp.StartupServletContextListener

细节

我正在学习使用Eclipse开发JSF应用程序。我从一个预先配置的Eclipse项目开始:File-> New-> Dynamic Web
Project-> JavaServer Face v2.0
Project。使用此方法,Eclipse提供了所有依赖项。但我想真正地了解一切。我想删除“魔术”,所以我将项目转换为Maven项目:配置->转换为Maven项目。

然后,我创建了pom.xml(基于http://myfaces.apache.org/build-tools/archetypes/myfaces-
archetype-helloworld20/index.html),其中包含以下内容:

<build>
    <finalName>jsf-facelets-tutorial</finalName>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <configuration>
                <webXml>WebContent/WEB-INF/web.xml</webXml>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
    </plugins>
</build>
<dependencies>
    <dependency>
        <groupId>javax.el</groupId>
        <artifactId>el-api</artifactId>
        <version>1.0</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.0</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.myfaces.core</groupId>
        <artifactId>myfaces-api</artifactId>
        <version>2.0.5</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.myfaces.core</groupId>
        <artifactId>myfaces-impl</artifactId>
        <version>2.0.5</version>
        <scope>runtime</scope>
    </dependency>
</dependencies>

但是因为我不熟悉JSF,并且因为这是Eclipse“动态Web项目”,所以项目结构对我来说是新的,而且我很难理解哪些依赖项来自Maven,哪些依赖项是由Eclipse提供的。
”。

在Eclipse中,我的项目结构如下:

ProjectName
  JAX-WS Web Services <-- CAN I REMOVE THIS???
  Deployment Descriptor
  Java Resources
    src/main
    Libraries
      Apache Tomcat v7.0
        el-api.jar
        jsp-api.jar
        [more...]
      JSF 2.0 (Apache MyFaces JSF Core-2.0 API 2.0.2) <-- I REMOVED THIS!!!
      EAR Libraries
      JRE System Library
      Maven Dependencies
        el-api-1.0.jar
        myfaces-api-2.0.5.jar
        myfaces-impl-2.0.5.jar
        [more...]
      Web App Libraries

问题 我的(非常基本的)应用程序(登录页面和欢迎页面)不再运行。当我执行以下操作时:

(1) Right click on WebContent/login.xhtml
(2) Run as -> Run on Server
(3) Apache Tomcat v7.0 - JDK6 at localhost

我得到例外:

Problem: SEVERE: Error configuring application listener of class org.apache.myfaces.webapp.StartupServletContextListener
java.lang.ClassNotFoundException: org.apache.myfaces.webapp.StartupServletContextListener

我觉得这很容易解决,但是我对这些框架不熟悉,无法解决。

如果我需要提供其他详细信息(web.xml,faces-config-xml,login.xhtml),请告诉我,我将添加它们。

谢谢!

编辑

WEB-INF /
lib始终为空。据我了解,有必要将所有依赖项复制到此文件夹中,这在运行时是必需的,而Web容器未提供。我的人为空的原因是:(1)我不知道我在那里需要什么(2)我不知道如何自动化将.jar文件放入那里的过程


问题答案:

在蚀项目属性下,从导航菜单中选择“部署程序集”,该菜单定义了“此Java EE Web应用程序项目的打包结构”。确保在此处添加了所有项目依赖项。

或者查看工作区/.metadata/.plugins/org.eclipse.wst.server.core\tmp0下的Web服务器目录,以检查罐子是否已复制到catalina基座。



 类似资料:
  • 主要内容:m2eclipse,在 Eclipse 中配置 Maven,修改本地仓库位置,在 Eclipse 中使用 Maven前面所涉及的 Maven 项目结构和代码都十分的简单,即使是使用最简单的文本编辑器也能够很快就能完成。但在实际的开发过程中,我们所涉及的 Maven 项目往往要复杂得多,此时我们就需要借助 IDE(集成开发环境) 来帮助我们完成开发工作。 当今最流行的 Java IDE 主要有 2 种:Eclipse 和 IntelliJ IDEA,其中 eclipse 是完全免费的,用

  • 我读了很多关于actionbarsherlock、maven和android的东西,但我见过的解决方案都不适合我:( 我确信我已经非常接近解决方案了,但我不明白,我需要一些帮助:) 所以这是我的问题,我尝试创建一个依赖于ActionBarSherlock的android maven项目....这看起来很容易,但我总是犯错误 下面是我的配置: Eclipse Juno M2e 1.2.0 ADT 2

  • 问题内容: 有谁知道使用maven和eclipse使用GWT的新2.0版本创建项目的好指南?我遇到了很多问题,无法让他们一起好好玩。 对于它的价值,我可以使用maven eclipse插件创建一个gwt项目,该插件可以正常工作,但是将其移植到maven则行不通(因此这方面的指南会很棒)。 同样,我可以使用Maven插件(gwt-maven- plugin),但是当我将其导入eclipse(导入->

  • 主要内容:执行预置 Maven 命令,执行自定义 Maven 命令在 Eclipse 中新建和导入 Maven 项目后,接下来就可以执行 Maven 命令对这些项目进行构建了。当然,您依然可以在命令行中执行 Maven 命令进行构建,不过本节将介绍如何在 Eclipse 中直接执行 Maven 命令。 执行预置 Maven 命令 在项目或其 pom.xml 上单击鼠标右键,选择 Run As 选项,就能够看到如图 1 的菜单。 图1:Eclipse 预置 Mav

  • 主要内容:导入 Maven 项目我们知道,m2eclipse 是一个在 Eclipse 中集成 Maven 的插件,通过该插件我们可以很轻松的在 Eclipse 中导入 Maven 项目,本节我们将讲解如何使用 Eclipse 导入 Maven 项目。 导入 Maven 项目 相比新建 Maven 项目,实际工作中使用更多的是将现有的 Maven 项目导入 Eclipse,具体步骤如下。 1)点击菜单栏中的 Import ,开始

  • 主要内容:新建 Maven 项目我们知道,m2eclipse 是一个在 Eclipse 中集成 Maven 的插件,通过该插件我们可以很轻松的在 Eclipse 中新建 Maven 项目,本节我们将讲解如何使用 Eclipse 新建 Maven 项目。 新建 Maven 项目 在 Eclipse 中新建 Maven 项目十分得简单,具体步骤如下。 1)在菜单栏中一次选择 File -->New --> Other,然后在搜索框中