问题标签 [jboss-weld]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
cdi - 在 CDI 中注入带有限定符的字符串
我正在尝试做简单的事情。在 CDI 中注入合格的String
(或)。File
所以我有一个限定符:
我有一个制片人:
我正在尝试使用它:
但是,WELD 不能实例化这个 bean。我遇到了一个例外:
我知道String
是不可代理的,但为什么 WELD 想要创建一个代理?它有@Dependent
范围,所以 AFAIK 它不应该创建代理。我怎样才能让它工作?
jsf-2 - Apache MyFaces CODI PageBean:“参数 bean 不能为空”
我目前正在尝试使用 Apache MyFaces CODI。我设法使用@Page 和一个返回类的操作方法创建了一个简单的工作类型安全导航。
但是,当我使用例如 MyPageBean.class 添加@PageBean-Annotation 时,当我尝试导航到页面时会引发以下异常:
我的页面代码是:
和我的页面豆:
Facelets页面调用的Action-Method:
pageBean-Class (MyPageBean) 是否需要有特定的注解或接口?我已经尝试过使用@Model,但这并没有改变任何东西。
我的配置:
- Jave EE6 with Weld(使用焊接原型创建)
- Glassfish 3.1 社区版(Netbeans 7 附带的版本)
- JSF2.0 (Mojarra 2.1)
- EJB 3.1
- MyFaces CODI 0.9.4
- RichFaces 4.0.0.Final
感谢您的任何建议!
最好的问候,罗伯特
events - 如何在 Glassfish 3.1 中结合 @Asynchronous 和 Weld/CDI 事件以及 @Observes(during=TransactionPhase.AFTER_COMPLETION)
首先让我声明,以下代码示例在 GF 3.0.1 中运行良好。当我们切换到 GF 3.1 时,麻烦就开始了。
我正在使用一种方法
自切换以来,每当这应该收到时,ExecuteFlowStepEvent
我都会收到以下错误消息:
没有提供更多信息或堆栈跟踪。如果我删除@Asynchronous
注释和AFTER_COMPLETION
属性,它会起作用,当然这会破坏程序,因为我取决于AFTER_COMPLETION
时间。
我试图在焊接论坛上寻求帮助,但到目前为止无济于事,尽管似乎还有其他人有同样的问题:http ://seamframework.org/Community/WeldUsers
我至少想知道:这是一个错误,还是这是想要的。这是否意味着 Weld 不适用于异步方法/AFTER_COMPLETION 属性?为什么这在 GF 3.0.1 中有效?有没有人设法在 GF 3.1 上完成这项工作?
cdi - Arquillian - Weld SE - 获取 NullPointerException
我是 Arquillian 的新手,想要进行一些基本的测试(注入一个 bean 并断言它做某事)。
例外:
测试用例类
当我运行它时,我得到一个 NullPointerException,bean 管理器为空。看起来我错过了一步,但从示例来看,这似乎就是我所需要的。
有任何想法吗?
沃尔特
wicket - 使用 Jetty 6.1.26、Weld 1.1.1 的接缝检票口
我正在尝试嵌入 Jetty 6.1.26、Weld 1.1.1、seam-wicket 3.0.0、Wicket 1.4.17 的 seam-wicket
在我修复了阻止找到 BeanManager 的 seam-wicket 错误之后(JNDI 不起作用,需要从 ServletContext 中提取 - 我为此使用了某人的类)。
然后我尝试了 RandomNumber 示例
http://docs.jboss.org/weld/reference/1.1.0.Final/en-US/html_single/#d0e948
并尝试在 Wicket 组件中@Inject
没有任何效果,我每次都得到这个:
那么,如何让 CDI 正常工作?感谢您的任何想法。
ejb - CDI WELD @ConversationScoped @Stateful EJB conversation.end() & @Remove SFSB
目前我正在尝试删除 ConversationScoped Stateful Session Bean (SFSB)。ConversationScope 由 CDI 容器管理,SFSB 的生命周期由 EJB 容器管理。这个对吗?
在我的控制器中,我试图通过调用 SFSB 的方法并调用 @Remove 带注释的方法来销毁 SFSB 来结束对话。
对话可以毫无问题地结束,但我无法破坏 SFSB。
Weld Reference Guide 中的代码示例(WELD Conversation Scope):
控制器:
在我调用了 testController.checkout(order) 之后,我得到了这个异常:
javax.servlet.ServletException: java.lang.reflect.InvocationTargetException javax.faces.webapp.FacesServlet.service(FacesServlet.java:321) org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(ConversationPropagationFilter.java:67) 根本原因
java.lang.reflect.InvocationTargetException javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:98) com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:98) javax.faces.component.UICommand.broadcast (UICommand.java:311) javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:781) javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1246) com.sun.faces.lifecycle.InvokeApplicationPhase.execute (InvokeApplicationPhase.java:77) com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97) com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114) javax.faces.webapp.FacesServlet .service(FacesServlet.java:308) org.jboss.weld.servlet.ConversationPropagationFilter。doFilter(ConversationPropagationFilter.java:67)
有任何想法吗?
谢谢
netbeans - Java 高级成像不适用于 Mac 上 Glassfish 中的 EJB 模块,但出现在 EAR 中
我正在开发一个使用 Geotools 的应用程序,它又使用 Java 高级成像 (JAI) API 在 Glassfish 下运行。当我从 Netbeans 将我的应用程序作为 EJB jar 文件运行时,由于 CDI 扫描期间出现 ClassNotFoundException 而无法部署:
但是,如果我将 EJB 模块打包到 EAR 文件中,则不会出现上述异常,并且似乎可以正常加载。
由于在 Mac 上 JAI 核心类在系统扩展库中,我很困惑它没有出现在类路径上。
在类加载方面,EJB jar 和 EAR 文件之间是否有区别,或者这在 Glassfish/Weld 中是否很大?
想一想 - glassfish 是如何找到我的项目使用的库的 - 它们似乎没有被打包到 ejb jar 文件中 - netbeans 在这里做了一些聪明的事情吗?
谢谢,乔什
glassfish - CDI 事件观察器方法是否与 EJB 兼容?
我有一个单例 EJB(javax.ejb.Singleton 版本。叹息。)它上面有一个 CDI 观察者方法。当我尝试将其部署到 glassfish 3.1 时,服务器无法在没有任何实际解释的情况下部署 EAR 文件 - 只是说部署期间出现异常而没有任何更多细节。
这是 CDI 事件侦听器:
如果我将 Singleton bean 更改为只是一个 @ApplicationScoped bean,则应用程序可以正常部署。同样,如果我删除 CDI 事件观察器方法,则应用程序部署良好。我实际上需要这个类是一个 EJB 单例,因为我想要 EJB 的事务、线程安全等,所以把它作为一个 @ApplicationScoped POJO 对我来说没有多大用处。不过,问题似乎并不局限于 Singleton bean - 我已经通过将注释更改为 @Stateless 和 @Stateful 进行了实验,但我遇到了同样的问题。
在我看来,这可能是 Weld 中的一个错误,也许 Weld 和 EJB 正在争论他们如何代理该方法 - 大概 EJB 需要添加一个拦截器类并包装该方法以确保线程安全,而 Weld 正在尝试做一些事情否则使事件监听器工作?
我是否误解了这里的某些东西,是否应该在 EJB 上根本不使用 CDI 事件处理程序(在这种情况下应该有来自 glassfish 的更好的错误消息)——或者这实际上只是 CDI 或 EJB 实现中的一个错误?
java-ee-6 - CDI Weld 和 AspectJ - org.jboss.weld.exceptions.UnproxyableResolutionException
使用 AspectJ 和 CDI 时出现此错误。
org.jboss.weld.exceptions.UnproxyableResolutionException: WELD-001437 正常范围的 bean 类 myPackageName.myClassName 是不可代理的,因为类型是 final 或者它包含 final 方法 static final java.lang.String myPackageName.myClassName.myMethodName_aroundBody0(myPackageName.myClassName .,org.aspectj.lang.JoinPoint)。
如果我删除 AspectJ,它会起作用,但我不希望这样。请帮忙。
java - @PostConstruct 为 @ConversationScoped bean 调用了多次
我有一个@ConversationScoped bean,带有一个 start 方法,如下所示:
我的问题是,每次刷新页面时都会启动一个新对话,每次我对 bean 中的方法进行 AJAX 调用时也会启动一个新对话(这是我的主要问题)。
我真正想要发生的是让 sam 对话一直存在,直到我手动调用 conversation.end()。我在这里想念什么?