Eclipse + Maven + JavaServer Faces -> ClassNotFoundException:StartupServletContextListener

2023-11-23

Summary

当我尝试从 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

Details

我正在学习使用 Eclipse 开发 JSF 应用程序。 我从预配置的 Eclipse 项目开始:文件 -> 新建 -> 动态 Web 项目 -> JavaServer Face v2.0 项目。 使用此方法 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

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

(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),请告诉我,我将添加它们。

Thanks!

EDIT

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


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

或者查看workspace/.metadata/.plugins/org.eclipse.wst.server.core\tmp0 下的Web 服务器目录,检查jar 是否已复制到catalina 库。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Eclipse + Maven + JavaServer Faces -> ClassNotFoundException:StartupServletContextListener 的相关文章

随机推荐

  • iPhone 应用程序中的密码加密

    我需要将用户的密码存储在我的 iPhone 应用程序中 当将应用程序发布到应用程序商店时 我必须告诉Apple该应用程序中是否有出于导出目的的加密 我不希望我的应用程序仅限于美国 但我也不希望以明文形式通过网络存储或发送密码 所以基本上问题
  • v6 中可选参数的替代方法

    在 v5 中 我们可以添加尾随 路由可选参数 但与 v6 一样 对相同参数的支持已被删除 那么编写以下代码的替代方法是什么
  • 如何使用Log4Net实现日志文件自动归档

    我想以这样的方式配置 log4net 以便自动归档前一天的所有日志 是否有可能在 Log4Net 中自动存档以前的日志 我只想使用配置来执行此操作 而不使用任何第三方库 如 Sharplibzip 编写任何代码来创建存档 通过归档还要添加一
  • C# 正确格式化(缩进、对齐)C#

    我们有一个代码生成器munges给定数据库的模式 用于自动化我们内部的 n 层架构 输出是各种 C 部分类 每个文件一个 在处理所有字符串的代码中 我们尝试尽可能地控制缩进和格式 但当您在 Visual Studio 中打开文件时 格式总是
  • 逐行读取文件并分割值

    我需要读取一个txt文件 其组成如下 AA 1000 AA 320009 999999 AA 1011 AA 320303 111111 对于每个读取的行 我需要用 将其分割以到达第一回合 test 0 AA 1000 AA 320009
  • 调用 savechanges 时实体框架复制

    我首先使用entityframework 5代码 我有一个这样的模型 class Product public Product Fabrics new BindingList
  • 如何在Spring 3.0应用程序中配置Hibernate统计信息?

    我们如何配置以便在基于 Spring MVC 的 Web 应用程序中通过 JMX 获取 Hibernate 统计信息 有没有更好的方法来跟踪 Hibernate 性能 Set hibernate generate statistics to
  • Cakephp 2.0 使用电子邮件而不是用户名进行身份验证

    在我看来我有 在我的应用程序控制器中 public components array
  • ZF2中同一模块下的多个命名空间

    我在同一模块下配置多个命名空间 类时遇到问题 例如 我有一个名为 Account 的模块 其中我想包含所有与帐户相关的类 公司 accounts 用户 users 外部 api api 等 模块结构看起来像这样 Account Module
  • Base64 图像不显示在 RDLC 报告的渲染 PDF 上

    我正在尝试使用参数 CustomerSign 在 RDLC 报告中 我正在从报告中渲染 PDF 文件 并且看到 PDF 文件 我已配置图像属性如下 选择图像源 Database 使用该字段 Convert FromBase64String
  • 为什么 Objects.hash() 对于相同的输入返回不同的值?

    我运行了以下脚本 java 它给了我奇怪的结果 有谁可以帮忙解释一下吗 import java util Objects import org apache log4j Logger public class CacheTester pri
  • -D MACRO 和 #define MACRO 的优先级

    如果我有一个C文件 foo c 虽然我已经给出了 DMACRO 1作为编译的命令行选项 但是 如果在头文件中我也有 define MACRO 2 其中哪一个会优先 我正在假设您正在做什么 但是如果您想从命令行为该宏提供非默认值 请尝试对宏定
  • 多线程访问文件

    我们有一个多线程java程序 多个线程将写入一个文件 一个线程将从该文件中读取 我正在寻找一些设计想法 是否需要同步 文件通道理论上是线程安全的 来自javadoc 文件通道可供多个并发线程安全使用 这 close 方法可以随时调用 具体由
  • 读取套接字时Java中断线程[重复]

    这个问题在这里已经有答案了 可能的重复 如何立即终止阻塞在套接字IO操作上的线程 我有一个客户端在线程中运行 想要从 Java 中的套接字读取数据 但在阅读时 也许我想杀死线程 所以我interrupt它 但是套接字的读取方法会抛出异常吗I
  • 如何在 jQuery 中循环遍历数组?

    我正在尝试循环遍历一个数组 我有以下代码 var currnt image list 21 32 234 223 var substr currnt image list split array here 我正在尝试从数组中获取所有数据 有
  • C# - 捕获鼠标光标图像

    背景 我正在编写一个屏幕捕获应用程序 我的代码基于此项目 http www codeproject com KB cs DesktopCaptureWithMouse aspx display Print 请注意 代码还捕获了鼠标光标 这对
  • PHP iOS AES 加密

    我在尝试使用 AES 加密在 PHP 和我的 iOS 应用程序之间进行通信时遇到了问题 到目前为止 我已经考虑了两种实现方法 第一个是使用 OpenSSL 在 iOS 方面 我以模仿此处显示的代码的方式实现 http saju net in
  • 如果向下滚动经过它,则有一个 div 紧贴在屏幕顶部[重复]

    这个问题在这里已经有答案了 我有一个 div 当我的页面首次加载时 它距离顶部大约 100px 它包含页面的一些按钮等 当用户滚动经过它时 我希望 div 跟随 用户 因为它附加到屏幕顶部 当用户返回到页面顶部时 我希望它回到原来的位置 V
  • 如何使用 CSS 删除没有 html 标签的字符串

    我需要删除没有的字符串html tag 例如 div class A a href class link keep this a and i want to remove this div 我可以只使用 css 来做到这一点吗 也许你可以使
  • Eclipse + Maven + JavaServer Faces -> ClassNotFoundException:StartupServletContextListener

    Summary 当我尝试从 Eclipse 中 在 Tomcat 7 0 上 运行 JSF 2 0 应用程序时 出现以下异常 Problem SEVERE Error configuring application listener of