Tomcat 7 上部署时出现 Omnifaces 异常

2023-12-02

我正在尝试将 Omnifaces 2.1 添加到 Web 应用程序以使用 FullAjaxExceptionHandler 以及 Omnifaces 2.1 中可能的其他功能。

我已阅读并关注了 BallusC 的以下帖子,但仍然陷入困境:如何在Tomcat上安装和使用CDI?

尝试安装 Weld 2.2.9.Final 并按照上述方式进行配置。我正在使用以下内容:

JSF 2.2、EL 2.2、Servlet 3、Java 7

web.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    id="{name}" version="3.0">

启动后我仍然遇到以下异常:

卡塔琳娜.log:

INFO: Starting service Catalina
Aug 09, 2015 8:57:18 AM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.56
Aug 09, 2015 8:57:18 AM org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Deploying configuration descriptor C:\xampp\tomcat\conf\Catalina\localhost\MITrace.xml
Aug 09, 2015 8:57:24 AM org.richfaces.webapp.ResourceServletContainerInitializer registerServlet
INFO: Auto-registered servlet ResourceServlet with mapping '/org.richfaces.resources/*'
Aug 09, 2015 8:57:24 AM org.omnifaces.ApplicationInitializer logOmniFacesVersion
INFO: Using OmniFaces version 2.1
Aug 09, 2015 8:57:26 AM com.sun.faces.config.ConfigureListener contextInitialized
INFO: Initializing Mojarra 2.2.6 ( 20140304-1537 https://svn.java.net/svn/mojarra~svn/tags/2.2.6@12949) for context '/MITrace'
Aug 09, 2015 8:57:27 AM com.sun.faces.spi.InjectionProviderFactory createInstance
INFO: JSF1048: PostConstruct/PreDestroy annotations present.  ManagedBeans methods marked with these annotations will have said annotations processed.
Aug 09, 2015 8:57:27 AM com.sun.faces.config.ConfigureListener contextInitialized
SEVERE: Critical error during deployment: 
java.lang.NoClassDefFoundError: Could not initialize class org.omnifaces.config.BeanManager
    at org.omnifaces.application.OmniApplication.<init>(OmniApplication.java:69)
    at org.omnifaces.application.OmniApplicationFactory.createOmniApplication(OmniApplicationFactory.java:89)
    at org.omnifaces.application.OmniApplicationFactory.getApplication(OmniApplicationFactory.java:54)
    at com.sun.faces.application.InjectionApplicationFactory.getApplication(InjectionApplicationFactory.java:93)
    at com.sun.faces.config.InitFacesContext.getApplication(InitFacesContext.java:144)
    at com.sun.faces.lifecycle.ClientWindowFactoryImpl.<init>(ClientWindowFactoryImpl.java:62)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
    at java.lang.Class.newInstance(Class.java:379)
    at javax.faces.FactoryFinder.getImplGivenPreviousImpl(FactoryFinder.java:721)
    at javax.faces.FactoryFinder.getImplementationInstance(FactoryFinder.java:553)
    at javax.faces.FactoryFinder.access$500(FactoryFinder.java:140)
    at javax.faces.FactoryFinder$FactoryManager.getFactory(FactoryFinder.java:1120)
    at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:379)
    at com.sun.faces.config.processor.FactoryConfigProcessor.verifyFactoriesExist(FactoryConfigProcessor.java:328)
    at com.sun.faces.config.processor.FactoryConfigProcessor.process(FactoryConfigProcessor.java:236)
    at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:435)
    at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:214)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4992)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5492)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:649)
    at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:672)
    at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1861)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)

本地主机.log:

Aug 09, 2015 10:28:23 PM org.apache.catalina.core.ApplicationContext log
INFO: No Spring WebApplicationInitializer types detected on classpath
Aug 09, 2015 10:28:25 PM org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring root WebApplicationContext
Aug 09, 2015 10:28:27 PM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Exception sending context initialized event to listener instance of class org.omnifaces.ApplicationListener
java.lang.ExceptionInInitializerError
    at org.omnifaces.ApplicationListener.checkCDIAvailable(ApplicationListener.java:63)
    at org.omnifaces.ApplicationListener.contextInitialized(ApplicationListener.java:55)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4994)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5492)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:649)
    at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:672)
    at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1861)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalStateException: CDI BeanManager instance is not available in JNDI.
    at org.omnifaces.config.BeanManager.<init>(BeanManager.java:99)
    at org.omnifaces.config.BeanManager.<clinit>(BeanManager.java:49)
    ... 15 more
Caused by: java.lang.IllegalStateException: javax.naming.NamingException: Cannot create resource instance
    at org.omnifaces.util.JNDI.lookup(JNDI.java:92)
    at org.omnifaces.config.BeanManager.<init>(BeanManager.java:95)
    ... 16 more
Caused by: javax.naming.NamingException: Cannot create resource instance
    at org.apache.naming.factory.ResourceEnvFactory.getObjectInstance(ResourceEnvFactory.java:115)
    at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:321)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:842)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:153)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:830)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:153)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:830)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:167)
    at org.apache.naming.SelectorContext.lookup(SelectorContext.java:156)
    at javax.naming.InitialContext.lookup(InitialContext.java:411)
    at org.omnifaces.util.JNDI.lookup(JNDI.java:88)
    ... 17 more

该 jar 确实存在并且已添加到应用程序中。

还有什么可能导致此错误?


好的,问题现已解决。我可以确认 Apache Tomcat/7.0.56 的以下内容:

  • /META-INF/context.xml 不是必需的,但资源条目仍然是必需的。为了解决该问题,我在以下现有位置添加了资源条目: tomcat\conf\Catalina\localhost{resource-file-name}.xml

之后没有出现任何错误。

  • 无需在web.xml中注册相关监听器
  • 无相关<resource-env-ref>web.xml 中需要
  • /WEB-INF/beans.xml(空)是必需的

上面的大部分内容都涵盖在这里:http://balusc.blogspot.com.au/2013/10/how-to-install-cdi-in-tomcat.html

我想对此提供更新,因为有些人可能会发现 tomcat 上的资源加载部分很有帮助。

再次感谢 BallusC。我对类似的帖子投了赞成票,因为与之相关的建议帮助我解决了这个问题。

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

Tomcat 7 上部署时出现 Omnifaces 异常 的相关文章

  • Apache httpd 与 Tomcat 7:端口 80 与端口 8080

    我最近在 Amazon ec2 上安装了 Tomcat 7 我发现Tomcat默认监听8080端口 互联网上的文档主张这是因为linux更好地将较低的端口保存给超级用户 顺便说一句 ec2 上的解决方案是创建一个负载均衡器 将通信从端口 8
  • Tomcat ExpiresFilter 无法正常工作

    我无法让 Tomcat 发送具有正确过期定义的图像 浏览器不断发送对已下载图像的 get 请求 Tomcat 响应 304 我想要的是 Tomcat 将使用正确的 expires 标头响应初始请求 并且没有任何 Last modified
  • 在单例模式中使用 CDI

    我正在尝试将记录器对象注入到按照单例方法实现的类中 代码几乎是这样的 Logger class public class LoggerFactory Produces public Logger getLogger InjectionPoi
  • 如何使用 CDI 1.0 从扫描中排除某个类别

    我想从 CDI 1 0 中的扫描中排除一个类 我正在使用 WebLogic 12 1 12 中 CDI 的默认实现 Weld CDI 1 0 我看到了几个有关 CDI 1 1 的网站和文档 但没有看到有关以前版本的内容 通过 Weld 您可
  • BufferedReader 准备方法

    我观察到 java io BufferedReader 的 read 方法有一个奇怪的行为 该方法在 Tomcat 中返回 false 而当在 Jetty 中运行相同的 servlet 时返回 true BufferedReader buf
  • Tomcat 7 连接被拒绝

    我有一个在 Jelastic 上运行的 Tomcat 实例 并且有两个已部署的应用程序 用于 foo 上下文和 bar 上下文 在处理对 foo 的请求期间 我们向 bar 发出 HTTP 请求 用于授权 并且这里总是出现异常 Connec
  • 检查 Tomcat 7 版本 linux

    如何检查 RHEL 上安装的 tomcat 7 版本 我查看了 bin 目录 找不到 version sh 您可以使用以下 scriptlet 发布 jsp Or grep 卡特琳娜 out对于这样的行 INFO Starting Serv
  • 在调用 f:ajax 侦听器之前和之后执行 JavaScript

    有一种简单的方法可以在调用之前和之后调用 JavaScript 操作
  • JSP 中的 CDI 注入

    在 JSP 中 可以使用 EL 表达式 例如 myBean myAttribute 来使用 CDI 托管 Bean 这里没问题 我想在 JSP 文件中使用 常规注入 即不使用 EL 表达式 和 Inject 例如 然后是 即使该示例可以使用
  • 在 Mojarra 2.2.5 的复合组件中使用 Omnifaces EL 函数

    升级到 JSF Mojarra 2 2 5 后 在使用 Omnifaces 的 el 函数 formatNumber 时出现以下异常 这仅发生在复合组件内 普通 Facelet 工作正常 javax el E LException 找不到函
  • Double.toString 对于大值没有指数表示法

    在我的 JSF2 应用程序中 我希望显示双精度值而不使用指数表示法 是否可以 我无法使用NumberFormat or DecimalFormat因为它将把我的数据类型更改为字符串 我从Java文档中了解到 如果我的double值小于10
  • 使用 CDI+JSF 使会话失效不起作用

    我正在尝试在我的应用程序中实现注销 所以我这样做了 public String logout try FacesContext facesContext FacesContext getCurrentInstance ExternalCon
  • MariaDB闲置一段时间后无法工作

    在我的网络应用程序上 我经常遇到以下异常 java sql SQLNonTransientConnectionException 无法发送查询 最后一个数据包未完成 它通常发生在系统长时间闲置之后 重新启动 tomcat 可以暂时解决该问题
  • Tomcat 托管具有多个 SSL 证书的多个虚拟主机

    例如 我有一台使用 Tomcat 7 托管多个网站的服务器 a abc com b abc com c def com d def com 使用tomcat的虚拟主机功能 因此它们各自可能属于不同的webapps文件夹 我们现在正在尝试为每
  • 在CDI容器中手动注册类

    我有一组通过反射实例化的类 因此它们不由 CDI 容器管理 并且上下文不会进行任何注入 我的问题是 有没有办法在 CDI 上下文中注册这些类 以便这些类由上下文管理 下面是我创建类的方式 String clazz org myorg thi
  • 轻松的反应

    我有一个与这里描述的类似的案例 动态更改RESTEasy服务返回类型 https stackoverflow com questions 3786781 dynamically change resteasy service return
  • 部署到 Glassfish 4.1 时 URL 模式无效

    如果用户已经通过身份验证 我有一个网络过滤器可以从登录和索引页面重定向 最初我有一个无效的 URL 模式 我修复了无效模式并尝试重新部署以接收以下内容 java lang IllegalArgumentException Invalid U
  • java.lang.IllegalArgumentException:addChild:子名称“/”不唯一

    java lang IllegalArgumentException addChild 子名称 不唯一 通过在 tomcat webapps 文件夹中启用和禁用 saml 单点登录来替换现有 war 文件时遇到此问题 我正在使用 apach
  • 可以从 Servlet 内启动 faces 流吗?

    我有一个由 servlet 访问的服务 它将用户重定向到登录屏幕 支持 bean 的范围目前正在从 ConversationScoped 更改为 FlowScoped 因为它更容易处理 有没有一种方法可以直接从 servlet 内初始化 f
  • Java EE7 中 Qualifier 中的 @Nonbinding 注释的目的是什么?

    我正在阅读CDIJavaEE 7 中的注入特别是使用 Qualifier and Produces注入一个custom Data type变成一颗豆子 我有以下代码取自JBoss 文档 http docs jboss org weld re

随机推荐

  • 在列表中添加奇数

    我试图找到给定范围内所有奇数的总和 但我不知道如何指定哪些数字是奇数 我的教授说使用 for num in Numbers 来访问范围内的元素 这是我到目前为止所拥有的 numbers range 0 10 def addOddNumber
  • Mozilla WebApp Manifest 要求提供 HTTP 标头

    我已经搜索了几个小时 但找不到解决方案 目前我想将第一个 Web 应用程序上传到 Mozillas 新平台 第二步是添加清单文件 我从以下位置获取信息here并尝试使用名称manifest webapp构建清单但结果是以下消息 Your m
  • Flutter IOS FCM 推送通知未进入通知栏

    我是 Flutter 和 IOS 的新手 我正在为 Android 和 IOS 配置 FCM 推送通知 对于 android 它工作正常 我已经通过引用此链接完成了https medium com jun chenying flutter
  • 为什么缺少/未声明 MonitorFromWindow? (C++/WINAPI)

    我正在尝试 Windows API 但遇到了很多问题 最近的是这样的 我包含了 Windows h 并暂时包含了 Winuser h 但缺少 MonitorFromWindow 以及相关字段 如 MONITOR DEFAULTTONEARE
  • 将二进制数据转换为可打印的十六进制数据

    In this有人评论说以下代码只能在 玩具 项目中使用 不幸的是 他没有回来说明为什么它不符合生产质量 所以我希望社区中的某个人能够向我保证代码没问题 因为我非常喜欢它 或找出问题所在 template lt class T1 class
  • meshgrid 和 ndgrid 之间的实际区别?

    这个讨论越来越激烈here关于 pageIdx 与ndgrid 我现在能明白了meshgrid但不是ndgrid 请用实际例子详细说明可以使用的地方 它实际上不一样meshgrid 值中有一些奇怪的反转 那么它应该用在哪里 假设您想知道数组
  • 在 Chrome Devtools 中看不到本地存储键值对

    我有一个 json 文件 用于存储使用 javascript 在我的页面上显示的数据 此 json 文件及其键值对在 Chrome 的开发工具中不可见或不可访问 该组件管理 json 文件 Takes a filename and a JS
  • 使用 Jquery Mobile 进行 XML 解析

    我有以下格式的 XML 我想提取 标题 和 子菜单 标签 并从中创建一个菜单栏结构 如下图所示
  • 如何处理龙卷风中的帕尔斯指令?

    我是龙卷风框架的新手 当我打开网址时torchado web RequestHandler 需要处理 parms 的字典 请看下面的代码 class MainHandler tornado web RequestHandler def ge
  • 使用 log4j2 的多个线程的不同日志文件

    我正在运行一个 Java 应用程序 其中调用多个线程 每个线程都有一些唯一的名称 现在我想为每个日志文件创建多个日志文件 日志文件的名称应该与线程名称相同 使用 log4j2 可以吗 请帮我写log4j2配置文件 先感谢您 我同意 Rout
  • 用户提交的 HTML 带来的安全风险

    我正在使用 contentEditable div 它允许用户编辑正文 HTML 然后使用 AJAX 请求将其直接发布到网站 当然 我还要对其进行一些安全检查 最明显的是通过搜索确保没有提交任何脚本标签
  • 如何修复 Eclipse/Android 安装?图形 XML 编辑器中的 PNG 加载问题

    很长一段时间以来 我的带有 Android 插件的 Eclipse 环境都运行顺利 在软件更新过程中应用的更新的某个地方 它崩溃了 开始发生的第一个问题是在运行布局文件的 Android 插件图形编辑器时丢失 按钮 Form Widget
  • 如何访问 R 中的嵌套 SQL 表?

    来自 R Studio 的ODBC 数据库文档我可以看到一个如何将 SQL 表读入 R 数据框的简单示例 data lt dbReadTable con flights 让我粘贴一个图形BGBUreftable 我正在尝试读取 R 数据帧
  • 将ScheduledJob注册为系统帐户(无需传入凭据)

    我相信对于Register ScheduledTask你可以指定 User System 或者做类似的事情 principal New ScheduledTaskPrincipal UserId SYSTEM LogonType Servi
  • 通过递增/递减最后找到的值向前/向后填充 na?

    给定以下 pandas 数据框 可以找到它的副本here 如何在单独的列中填充 na 并递增 递减 nr 行 直到下一个信号值和前向 后向信号值 信号值只有 1 1 或 np na Values Signal 0 1420 49 1 142
  • 使用 Javascript forEach 和 indexOf 在 JSON 中搜索多个过滤器

    我有 JSON 格式的数据 需要在其中执行搜索 有不同的可用标签 当我单击它们时 它会在 JSON 中搜索并返回具有这些标签的项目 为此 我使用了 js 函数 它第一次工作正常 但是当我在函数中推送第二个过滤器时 它返回错误的数据 可用的过
  • RFC_READ_TABLE 传递“选项”和“字段”参数 (c#)

    需要帮助 我正在尝试使用 RFC READ TABLE 从 SAP 获取销售数据 但不知道如何将 OPTIONS 和 FIELDS 参数传递给 SAP 这是我的应用程序的示例代码 连接正常 执行后出现异常 DATA BUFFER EXCEE
  • 有没有办法防止opencv矩阵除法的舍入

    我有一个整数矩阵 我想对其进行整数除法 但opencv总是对结果进行四舍五入 我知道我可以手动划分每个元素 但我想知道是否有更好的方法 Mat c Mat
  • TCP Keepalive 是确定断开链接的唯一机制吗?

    我最近遇到了一个问题 TCP 服务器和客户端之间的中间链路出现故障 如果主服务器宕机 客户端需要连接到辅助服务器 当主服务器被关闭时 例如 通过在终端上执行 C TCP 关闭序列会通过 并且客户端成功检测到断开的链接并尝试辅助服务器 然而
  • Tomcat 7 上部署时出现 Omnifaces 异常

    我正在尝试将 Omnifaces 2 1 添加到 Web 应用程序以使用 FullAjaxExceptionHandler 以及 Omnifaces 2 1 中可能的其他功能 我已阅读并关注了 BallusC 的以下帖子 但仍然陷入困境 如