- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用,
以及其他 Java EE 工件。
<小时/>@FacesValidator 中的注入(inject)点如下所示,
@FacesValidator(value="testValidator")
public class TestValidator implements Validator {
@Inject
private DemoEJB ejb;
@Inject
private ManagedBean managedBean;
@Override
public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorException {
// Use the injected EJB and/or managed bean here.
}
}
这些注入(inject)点仍然为null
(我没有明确尝试注入(inject) EJB,但它不应该像托管 bean 那样发生)。
由于上述 Mojarra 版本仍然可以作为快照使用,因此我尝试使用相同版本的 OmniFaces 2.0 将其降级到 2.2.10(或者也尝试使用 OmniFaces 2.1-SNAPSHOT - 在两个 Mojarra 2.2.10 上)和 2.3.0-m01 或者)但无济于事。
当我将 Majarra 降级到 2.2.8-02 时(交替尝试使用 OmniFaces 1.8.1、2.0 和 2.1-SNAPSHOT),此方法有效。我没有尝试其他 Mojarra 版本。
支持通过 OmniFaces 为 EJB 和 CDI 注入(inject)点制作 @FacesValidator
和 @FacesConverter
候选对象(这又不需要任何额外的依赖项和/或配置)已被新版本的 Mojarra 删除?
我还没有在 @FacesConverter
中明确尝试过,只是因为使用有缺陷的 NetBeans IDE 多次更改了这么多库,而 NetBeans IDE 本身在 Windows 上运行速度也很慢,需要一整天的时间从黎明到黄昏。
编辑:
服务器产生以下与 Weld 相关的警告。
WARN: WELD-001700: Interceptor annotation class javax.ejb.PostActivate not found, interception based on it is not enabled
WARN: WELD-001700: Interceptor annotation class javax.ejb.PrePassivate not found, interception based on it is not enabled
WARN: WELD-000411: Observer method [BackedAnnotatedMethod] private org.glassfish.jersey.gf.cdi.internal.CdiComponentProvider.processAnnotatedType(@Observes ProcessAnnotatedType<Object>) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.
WARN: WELD-000411: Observer method [BackedAnnotatedMethod] public org.omnifaces.VetoAnnotatedTypeExtension.processAnnotatedType(@Observes ProcessAnnotatedType<Object>) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.
WARN: WELD-000411: Observer method [BackedAnnotatedMethod] public org.glassfish.jms.injection.JMSCDIExtension.processAnnotatedType(@Observes ProcessAnnotatedType<Object>) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.
WARN: WELD-000411: Observer method [BackedAnnotatedMethod] org.glassfish.sse.impl.ServerSentEventCdiExtension.processAnnotatedType(@Observes ProcessAnnotatedType<Object>, BeanManager) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.
WARN: WELD-000411: Observer method [BackedAnnotatedMethod] private org.glassfish.jersey.gf.cdi.internal.CdiComponentProvider.processAnnotatedType(@Observes ProcessAnnotatedType<Object>) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.
WARN: WELD-000411: Observer method [BackedAnnotatedMethod] private org.glassfish.jersey.gf.cdi.internal.CdiComponentProvider.processAnnotatedType(@Observes ProcessAnnotatedType<Object>) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.
WARN: WELD-000411: Observer method [BackedAnnotatedMethod] public org.glassfish.jms.injection.JMSCDIExtension.processAnnotatedType(@Observes ProcessAnnotatedType<Object>) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.
WARN: WELD-000411: Observer method [BackedAnnotatedMethod] public org.glassfish.jms.injection.JMSCDIExtension.processAnnotatedType(@Observes ProcessAnnotatedType<Object>) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.
WARN: WELD-000411: Observer method [BackedAnnotatedMethod] public org.omnifaces.VetoAnnotatedTypeExtension.processAnnotatedType(@Observes ProcessAnnotatedType<Object>) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.
WARN: WELD-000411: Observer method [BackedAnnotatedMethod] org.glassfish.sse.impl.ServerSentEventCdiExtension.processAnnotatedType(@Observes ProcessAnnotatedType<Object>, BeanManager) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.
WARN: WELD-000411: Observer method [BackedAnnotatedMethod] public org.glassfish.jms.injection.JMSCDIExtension.processAnnotatedType(@Observes ProcessAnnotatedType<Object>) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.
WARN: WELD-000411: Observer method [BackedAnnotatedMethod] org.glassfish.sse.impl.ServerSentEventCdiExtension.processAnnotatedType(@Observes ProcessAnnotatedType<Object>, BeanManager) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.
WARN: WELD-000411: Observer method [BackedAnnotatedMethod] org.glassfish.sse.impl.ServerSentEventCdiExtension.processAnnotatedType(@Observes ProcessAnnotatedType<Object>, BeanManager) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.
WARN: WELD-000411: Observer method [BackedAnnotatedMethod] private org.glassfish.jersey.gf.cdi.internal.CdiComponentProvider.processAnnotatedType(@Observes ProcessAnnotatedType<Object>) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.
WARN: WELD-001473: javax.enterprise.inject.spi.Bean implementation com.sun.faces.cdi.ApplicationProducer@b15a70 declared a normal scope but does not implement javax.enterprise.inject.spi.PassivationCapable. It won't be possible to inject this bean into a bean with a passivating scope (@SessionScoped, @ConversationScoped). This can be fixed by assigning the Bean implementation a unique id by implementing the PassivationCapable interface.
WARN: WELD-001473: javax.enterprise.inject.spi.Bean implementation com.sun.faces.cdi.ApplicationMapProducer@db0450 declared a normal scope but does not implement javax.enterprise.inject.spi.PassivationCapable. It won't be possible to inject this bean into a bean with a passivating scope (@SessionScoped, @ConversationScoped). This can be fixed by assigning the Bean implementation a unique id by implementing the PassivationCapable interface.
WARN: WELD-001473: javax.enterprise.inject.spi.Bean implementation com.sun.faces.cdi.ViewMapProducer@1c55365 declared a normal scope but does not implement javax.enterprise.inject.spi.PassivationCapable. It won't be possible to inject this bean into a bean with a passivating scope (@SessionScoped, @ConversationScoped). This can be fixed by assigning the Bean implementation a unique id by implementing the PassivationCapable interface.
WARN: WELD-001473: javax.enterprise.inject.spi.Bean implementation com.sun.faces.cdi.ExternalContextProducer@14b1a6 declared a normal scope but does not implement javax.enterprise.inject.spi.PassivationCapable. It won't be possible to inject this bean into a bean with a passivating scope (@SessionScoped, @ConversationScoped). This can be fixed by assigning the Bean implementation a unique id by implementing the PassivationCapable interface.
WARN: WELD-001473: javax.enterprise.inject.spi.Bean implementation com.sun.faces.cdi.FacesContextProducer@1048acb declared a normal scope but does not implement javax.enterprise.inject.spi.PassivationCapable. It won't be possible to inject this bean into a bean with a passivating scope (@SessionScoped, @ConversationScoped). This can be fixed by assigning the Bean implementation a unique id by implementing the PassivationCapable interface.
WARN: WELD-001473: javax.enterprise.inject.spi.Bean implementation com.sun.faces.cdi.ViewProducer@275cfa declared a normal scope but does not implement javax.enterprise.inject.spi.PassivationCapable. It won't be possible to inject this bean into a bean with a passivating scope (@SessionScoped, @ConversationScoped). This can be fixed by assigning the Bean implementation a unique id by implementing the PassivationCapable interface.
最佳答案
这是由 Mojarra 2.2.9 中的更改引起的。在 2.2.8 中运行良好。我在 GlassFish 4.1 和 WildFly 8.2 中重现了它。扫描 2.2.9 release notes 中列出的所有问题后以及相关的更改包,这似乎是 issue 3552 向后移植的结果到 JSF 2.2.x。他们在内部禁用了组件、行为、验证器和转换器的可注入(inject)性检查,这隐式地将它们注册为 CDI 托管 bean 候选者。换句话说,在 2.2.x 到 2.2.9 期间,Mojarra 无意中在上述工件中提供了“原生”@Inject
支持。
为了让 @FacesConverter
和 @FacesValidator
中的注入(inject)通过 OmniFaces 正常工作,您需要添加一个空的 /WEB-INF/beans。 xml
或至少一个将 bean-discovery-mode
设置为 all
而不是 annotated
的文件。
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:weld="http://jboss.org/schema/weld/beans"
bean-discovery-mode="all"
>
<!-- ... -->
</beans>
它已经是默认值,您也可以省略 bean-discovery-mode
属性。
技术差异在于,bean-discovery-mode="all"
会将所有 符合条件的类注册为 CDI 托管 bean,而 bean-discovery-mode ="annotated"
仅将具有显式 CDI 范围注释(例如 @RequestScoped
)的类注册为 CDI 托管 bean,因此对于 @FacesConverter
和 来说,这会失败>@FacesValidator
。
关于jsf - @FacesValidator 和 @FacesConverter 中的 EJB 和 CDI 注入(inject)点无法通过较新版本的 JSF 中的 OmniFaces 工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29458023/
我以使用文件库的方式实现。 然后我有以下代码: 更新根:一个HtmlRoot super updateRoot: anHtmlRoot. anHtmlRoot title: self title. a
这里有一个问题要问我的父亲。从 Excel 5 到现在他使用 Excel 2002,他在 Excel 中使用 VBA 已经有二十多年了。 由于他在Excel中使用VBA很长时间,并且广泛使用记录宏的功
我正在编写一个程序来在本地备份我的 Google 相册库,上周代码运行良好,但在过去的几天里,我反复从 API 客户端收到错误消息,说“photoslibrary v1”不存在在 Google 的 A
谁能建议如何解决这两个问题? - 无法升级 Jenkins 和 SVN 插件 - 无法连接到 svn 我正在 Windows 64 位机器上设置 Jenkins。它被配置为作为 Windows 服务运
这个问题已经有答案了: Trouble with UTF-8 characters; what I see is not what I stored (5 个回答) 已关闭 6 年前。 它在我的旧服务
我无法在 Chrome 新版本中打开弹出窗口。我单击打开模式对话框弹出窗口的链接,但弹出窗口没有出现。我猜测这是 google chrome 新版本的问题。 function DownloadRepo
我试图找到一种方法来结合“NewReleases”ResponseGroup 和关键字搜索。 我正在使用 PHP Soap Library . 我知道它不再维护,因为这里是 new version ,
我在谷歌分析中创建了新帐户 并发现它有新的用户界面:没有 View ,无法添加目标。如何添加? 最佳答案 刚刚打开 的切换事件 在转换报告中将其标记为 转换 : 关于google-analytics
我从 Codecanyon 购买(许可)了一些不在 GIT 中维护的代码。我现在对它做了很多更改(使用 GIT)。很快原始代码的作者将发布一个新版本。我会想在不丢失我自己的情况下 merge 他们的更
首先,我指的是这个问题( LINK ),它对我没有帮助,因为当时框架的版本较低,所以我开始新问题。 所以我正在使用 Grails 2.4.3 框架并尝试在其中使用 Drools 规则引擎。Java版本
这个问题已经有答案了: Firefox Web Console Disabled? (4 个回答) 已关闭 9 年前。 我在 Mac OSX 上运行 Firefox 28.0,并尝试使用控制台和 Fi
我遇到了有关应用内购买的问题。我之前通过应用内购买启动了我的应用程序 v1.0。现在我通过应用内购买上传了 v1.1。该应用程序显示“等待审核”状态。但是In-App purchase还是显示“Wai
我们都知道 - 这是列出我们最喜欢的软件的每个新版本带来的变化的阅读。每当它捆绑为文件(Changes.txt、CHANGES、WhatsNew.txt 等)或出现在安装程序中时,这通常是我们在安装/
我想将 hibernate-3.5-1.Final 与此插件一起使用,这里我的依赖项应该是什么。它似乎正在拿起一组较旧的 jar ,但现在失败了。
我注意到昨天发布了OpenCV的新版本v2.3。 我无法使用cmake以及编译Linux和Unix源代码的基本说明在Mac中安装此版本。 我在执行make指令时获得了以下错误消息: /Users/jo
我正在将 POI jar 从旧版本升级到新版本 ( 3.10.1 )。我在构建文件中看到 poi-contrib.jar 位于类路径上,并且版本为 2.5.1-final-20040804。(我不确定
前一段时间我创建了this帖子,我和我的同事找到了两个不同的答案(都有效): 第一个解决方案是使用 Intent callIntent = new Intent (“android.intent.ac
起初集群中的所有代理都可以正常启动和工作,但有时其中一个代理会遇到问题。并且会出现一些现象: 整个集群挂了,生产者和消费者也不工作,因此网络流量从监视器降为零; 使用kafka-topic.sh描述t
在 Chrome 更新之前,我的代码运行良好。 我对我的服务器进行了 ajax 调用。我的服务器收到调用,将 JSON 返回给客户端,但答案始终为空。当我查看 Fiddler 时,我从服务器得到了答案
我从事一个项目已有 1 年,并定期进行重要更新。上次在 3 天前,我存档并生成了一个 IPA,但在加载屏幕后,应用程序崩溃了。但是当我运行该应用程序时,它工作正常,一切都像以前一样工作。 检查下面的链
我是一名优秀的程序员,十分优秀!