问题标签 [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.

0 投票
1 回答
1667 浏览

cdi - 在 CDI 中注入带有限定符的字符串

我正在尝试做简单的事情。在 CDI 中注入合格的String(或)。File

所以我有一个限定符:

我有一个制片人:

我正在尝试使用它:

但是,WELD 不能实例化这个 bean。我遇到了一个例外:

我知道String是不可代理的,但为什么 WELD 想要创建一个代理?它有@Dependent范围,所以 AFAIK 它不应该创建代理。我怎样才能让它工作?

0 投票
1 回答
1723 浏览

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

感谢您的任何建议!

最好的问候,罗伯特

0 投票
1 回答
2220 浏览

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 上完成这项工作?

0 投票
2 回答
2775 浏览

cdi - Arquillian - Weld SE - 获取 NullPointerException

我是 Arquillian 的新手,想要进行一些基本的测试(注入一个 bean 并断言它做某事)。

例外:

测试用例类

当我运行它时,我得到一个 NullPointerException,bean 管理器为空。看起来我错过了一步,但从示例来看,这似乎就是我所需要的。

有任何想法吗?

沃尔特

0 投票
0 回答
886 浏览

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 正常工作?感谢您的任何想法。

0 投票
2 回答
2836 浏览

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)

有任何想法吗?

谢谢

0 投票
1 回答
462 浏览

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 在这里做了一些聪明的事情吗?

谢谢,乔什

0 投票
2 回答
5155 浏览

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 实现中的一个错误?

0 投票
1 回答
1026 浏览

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,它会起作用,但我不希望这样。请帮忙。

0 投票
6 回答
6319 浏览

java - @PostConstruct 为 @ConversationScoped bean 调用了多次

我有一个@ConversationScoped bean,带有一个 start 方法,如下所示:

我的问题是,每次刷新页面时都会启动一个新对话,每次我对 bean 中的方法进行 AJAX 调用时也会启动一个新对话(这是我的主要问题)。

我真正想要发生的是让 sam 对话一直存在,直到我手动调用 conversation.end()。我在这里想念什么?