问题标签 [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 回答
919 浏览

servlets - 在 Servlet 中注入 CDI 会话 Bean

我正在我的项目中注入(@Inject)CDI Beans 范围请求和 Servlet 中的会话。问题是对于会话 bean CDI,我没有得到那些状态。我尝试从我的 servlet 修改 bean 的状态,但是当我尝试从页面恢复时,好像 servlet 无法更改状态。有人可以帮助我吗?

0 投票
3 回答
11177 浏览

java - 用 CDI 机制替换基于工厂的对象创建

我想在我们的项目中引入 CDI(焊接),但现在手动构建的对象遇到了一些问题。

所以我们有一些实现IReport接口的类,它们有一个应该注入的字段。这在运行时为 null,因为所有这些类都是由ReportFactoryin a class生成的ReportController

我知道我可以将@Produces注释与 中的另一个自定义注释一起使用ReportControllerFactory,但是如何将@Inject用于只能在完成一些验证后在方法创建的变量?我将如何提交参数ri.getClassName()?对象在构造ri时是未知的ReportController

非常感谢!

亲切的问候,塞巴斯蒂安

2011 年 7 月 8 日 (10:00) 编辑:

报告工厂类:

编辑 2(选择正确的报告实施)

报表实例由一些从 JSF 前端到 ReportController 的路径选择。ManagedBean 调用一个会话 bean,该会话 bean 有多种方法,具体取决于在何处按下了哪个按钮。所有这些方法都设置报告名称并调用更通用的方法sendOrGetReport。此方法从数据库中选择指定报表的唯一键,并决定是发送电子邮件还是立即发送报表。让我们假设它应该交付。

然后ReportController开始发挥作用。他ReportInfo根据上述方法提供的唯一键和其他信息获取对象,并调用ReportFactory来创建类型的报告ri.getClassName()

花哨的,是吗?我认为整个部分可能需要一些重构。如果您没有看到任何容易的地方,我会跳过@Inject报告实现中的 并为该资源进行 JDNI 查找。

0 投票
1 回答
1049 浏览

java - 使用weld-se-core 和weld-servlet-core 时CDI 停止工作?

我正在玩 Weld-SE。我有一个具有可插拔模块的项目。使用一个模块,焊接工作。当使用 的其他模块weld-servlet-core被放在类路径上(使用它的 deps)时,CDI 停止工作,并给出诸如“无法解析依赖项 XY”之类的错误或(在删除之后@Inject)这样的错误:

尽管该类具有@Interceptor(并且同一类可以与其他模块一起正常工作)。

当我调试WeldBootstrap#startContainer(Environment environment, Deployment deployment)时, deployment.beanDeploymentArchive.beanClasses包含拦截器("org.jboss.weld.environment.se.jpa.JpaTransactionInterceptor")。

我检查了依赖项和 TattleTale 报告,它们看起来都很好。

有什么想法我应该看/接下来尝试什么?

该项目位于http://ondrazizka.googlecode.com/svn/trunk/bots/JawaBot/branches/2.0/要查看错误,请运行 mvn dependency:copy-dependencies java -cp ... org.jboss.jawabot。 JawaBotApp 或者只是在 NetBeans 中运行 web 模块。

谢谢, 翁德拉

更新: JIRA: https
://issues.jboss.org/browse/WELD-940 另外,我发现它可能是由 Weld 的扫描扩展中的错误引起的,<weld:scan>.

0 投票
2 回答
6019 浏览

java - JavaEE 和 CDI:了解 @Observes

我有原型org.jboss.weld.archetypes:jboss-javaee6-webapp:1.0.1.CR2,我试图理解这个类MemberListProducer

观察者是从另一个类调用的memberEventSrc.fire(newMember);,这似乎很清楚:一旦被触发,MemberListProducer更新成员列表。

但我不明白为什么这是在@RequestScopedBean 中完成的。据我了解retrieveAllMembersOrderedByName,每个请求都会调用该方法。这@Observes不应该更好地放在 a@ViewScoped@SessionScopedBean 中吗?它在这种情况下是否有影响?

0 投票
3 回答
730 浏览

eclipse - 在 Java EE 开发中快速周转的理想设置是什么?

在使用 Eclipse Indigo 和 JBoss 6 实现 Java EE 6 应用程序时,我目前正在为项目设置而苦苦挣扎。应用程序服务器和 IDE 几乎已在项目中设置。Maven 3 被使用,并且是通过使用 WELD 原型和创建 WAR 进行设置的基础。

现在,问题是,我对发展的转变感到非常失望。我在 Eclipse 中没有有效的自动重新部署,并且经常需要重新启动 JBoss,因为它与新的发布混淆,然后无法正确重新部署。这是非常令人沮丧和耗时的。(另外,我觉得那些喜欢脚本语言的人在我身后傻笑。)

在早期的项目中,我们使用的是 Seam 2,而由 seam-gen 创建的项目进行了一些不错的重新发布,尽管每当我更改 Java 类时我仍然必须手动重新启动应用程序。然后,通过使用 Netbeans 7 和集成的 GlassFish 3.1,我发现自动重新部署工作正常。而且由于 Java EE 6 的传播范围非常广泛,我认为肯定有比我现在更好的设置。

因此,通过这篇文章,我希望能够更深入地了解在 JBoss 和 eclipse 上流畅地开发基于 Java EE 6 的 WAR 项目的良好项目设置——谁能分享一些最佳实践?

非常感谢!

0 投票
2 回答
7618 浏览

jsf - JSF:没有表单提交的按钮/链接

在早期的项目中,当取消某些东西时,我经常使用 Seam 2 中的 s:button 或 s:link,因为它不会提交表单,因此不会发生模型更新。

现在我切换到 WELD + Seam 3 并且再也找不到它了 - 我只是盲目还是我必须使用其他东西?

格齐弗

0 投票
1 回答
1229 浏览

initialization - CDI / Weld SE - @Observes ContainerInitialized 不起作用

我有 Weld SE,以这种方式引导:

和下面的豆

根据 Weld 文档,init()应该调用该方法。但事实并非如此。其他豆子工作正常。
有什么问题?

0 投票
2 回答
1271 浏览

dependency-injection - 如何设置 wicket 快速入门以使用 seam-wicket CDI?

我需要做什么才能使 CDI 在我的 wicket 快速入门项目中工作?当我尝试启动 Jetty 服务器时,出现异常:

我正在创作一个检票口项目。我不知道 Seam、Weld 或 CDI 的第一件事。我想通过将它合并到一个小项目中来学习它。我正在关注此参考文档:

http://docs.jboss.org/seam/3/wicket/latest/reference/en-US/html_single/

现在,我在外星人文件的海洋中游泳,试图找到答案。帮助!

编辑:

wicket 快速入门中的 Jetty 服务器是通过编程方式创建的。根据下面给出的文档,我创建了:

webapp/WEB-INF/jetty-env.xml

web.xml中,我添加了以下代码段:

以下 Java 代码负责在运行 Start 时在快速启动环境中设置 Jetty 服务器:

根据我的 Maven 依赖项,我正在使用码头版本 6.1.25。

0 投票
1 回答
1416 浏览

testng - TestNG - 使用任何 @Before* 注释时注入失败,但没有

我想@Inject在我的 TestNG 测试用例中使用注释。该测试由 Arquillian 在远程 JBoss AS 6 实例中执行。测试基本上是这样的:

测试用例

工作时...

initTestData()如果我在单个测试方法中手动调用该方法,我已经正确注入了资源来使用。

不工作时...

如果我使用上面给出的任何注释(@BeforeClass, @BeforeTest, @BeforeMethod),测试用例将失败,因为所有注入的资源都是空的(utx 和 em 以及我想测试的其他一些类)。

所以,我在问自己和你们:那里出了什么问题?

亲切的问候,塞巴斯蒂安

0 投票
2 回答
1325 浏览

java - 为什么 CDI 注入在某些模块中不起作用,而在其他模块中不起作用?

在我的 Java EE 项目中,有几个“Java EE”模块和一个 Web 模块。其中一个 Java EE 模块为 CDI 提供了一个类,供其他模块使用:

它们被注入

但是,这只适用于其中一个 Java EE 模块和 web 模块。在所有剩余的 Java EE 模块中,注入始终失败,我不知道为什么:我得到的只是 WELD-1408, unsatisfied dependency

所有模块都beans.xml在适当的位置,只要我不切换到注入,它们都可以工作。大多数目标 bean 已经作为 JSF 中的注入 bean 使用。有效的 Java EE 模块的特别之处在于 bean 被注入到 web 模块中的 servlet,而不是 JSF。

该项目在 GlassFish 3.1 中使用 Java EE 6、EJB 3.1 运行。依赖项由 Maven 3 管理。X它本身就是Serializable,以满足钝化范围。

你以前遇到过这个吗?我做错了什么?

更新:在上面添加了依赖管理备注。

更新:更正了@Actualin的位置Target

更新:经过一天的实验,更新了描述,提供了更多细节。