问题标签 [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.
jsf-2 - 会话通过 web.xml 过期后将用户重定向到错误页面 (xhtml)
我的环境是:NetBeans7.2.1、GlassFish3.1、JSF2 和 Weld 1.1.0。
当会话时间到期时,我想重定向到 error.xhtml 页面。在 web.xml 中,我添加了以下代码:
但后来我得到这个异常错误:
当我使用名为 ErrorHandler 的 Servlet 侦听器在 web.xml 中使用此代码捕获此异常时:
它工作正常,我从那里重定向到 error.xhtml。
我需要该位置直接通过 web.xml 工作(而不是通过 servlet)。
我尝试将xhtml
页面更改为html
,它仍然无法正常工作,但异常不同:
我还尝试将位置的根更改为/faces/error.xhtml
,但它仍然不起作用。
可能是什么问题呢?如何从 web.xml 重定向到页面?
提前致谢。
unit-testing - 使用 CDI-Unit Jglue 对 CDI 进行单元测试
我们想使用 Jglue 框架对我们的 CDI 应用程序进行单元测试。我们使用 gradle 进行构建。
我们准备了这样的东西:
1) 测试类:
2)接口:
3)Gradle设置(我们跟着入门http://jglue.org/cdi-unit/)
4) 测试类:
当我们运行这个简单的测试时,我们总是会得到这个异常:
在 /build/reports/tests/index.html 中有:
请问有人知道如何避免这个例外吗?如果需要,我可以添加更多细节。
jsf - Apache Tomcat 7.0.47 上的 BeanManager 无法创建资源实例
运行于:Apache Tomcat 7.0.47 OmniFaces 1.6.3 JSF Mojarra 2.1.26 CDI Weld 2.1.0.Final
RuntimeException
通过访问 JNDI“java:comp/BeanManager”,可以在 Apache Tomcat 7.0.47 上找到一个。CDI BenManager 绑定到java:comp/env/BeanManager
您的 BeanManager 类中未达到的“”vut。
堆栈跟踪:添加
面孔配置:
网页.xml:
在 META-INF 下添加了 context.xml:
jakarta-ee - 将@SessionScoped CDI Bean 注入@Stateless EJB
我想将 sessionscoped CDI bean 注入到无状态 EJB 中。在访问 EJB 时,应该使用会话范围的 cdi bean 的正确实例(即调用者的会话范围中的那个)。我知道我可以用有状态的 EJB 解决这个问题,但是我真的很想知道这是否也可以用 CDI 解决。由于 EJB 和 Servlet 在同一场战争中运行,我假设它们共享相同的线程并且容器应该能够在 EJB 中找出正确的 sessionscoped bean?
例如:
EJB:
CDI 豆:
当我现在从一个servlet 访问无状态EJB 时,我希望testMethod 使用与调用者的HTTPSession 相关联的CDI bean。因此,如果来自不同浏览器/http 会话的两个客户端访问 Servlet,它们都应该得到不同的结果字符串。
我是否需要 CDIProvider
而不是,Instance
如果是,我如何为给定会话生成正确的 bean 实例?我考虑过获取 BeanManager 并搜索 SessionData 的实例,但我不知道如何获得正确的实例。
非常感谢任何帮助,谢谢!
java - 为什么 Weld 在 Tomcat 上说“不支持注入侦听器”?
我有一个使用 Resteasy(又使用 Weld)的 Web 项目,并部署到 Tomcat 7.0.22(我将特定版本放在这里,以防此版本特有的问题)。
我有一个看起来像这样的 ServletContextListener:
部署到 Tomcat 后,healthCheck is null
被记录了,我还注意到日志中的这一行:
问题1:为什么CDI注入在Listeners中不可用?
我查看了这个答案,它说Load on startup via @Startup. There is currently no equivalent to this in CDI.
问题 2:问题 1 中描述的问题是由此造成的吗?
问题 3:我正在使用org.jboss.weld.servlet:weld-servlet:1.2.0.Beta1
. 以后的版本中是否有关于启动支持的更新?
相关问题我 在 Weld 中查看了启动课程
java - 如何限制 CDI 认为是托管 bean?
我从使用 spring 多年并且刚刚开始研究 JEE7 和 CDI 来解决这个问题。
在 Spring 世界中,您必须坚持@Component
使用 bean 才能变成 spring bean,spring 将注入依赖项,但在 CDI 中似乎没有@Component
.
对我来说,CDI 似乎意味着我的 Web 应用程序中的每个类都将被视为一个 CDI bean,这似乎是不可取的,因为我有很多没有使用注入的 java 类,我不希望有人只坚持@Inject
这些类并拥有 CDI发挥它的魔力。
两个问题:
- 如何在 jar 文件中限制 CDI 认为是托管 bean 的内容?
- CDI 将每个 bean 都视为托管 bean 有什么好处?
java - CDI 部署失败:WELD-001414 Bean 名称不明确
我有一个应用程序,它有多个模块和各种依赖项。当我在 Glassfish 4 上部署应用程序时,出现错误:
可能是什么原因?我已经看到了有关此的主题,解决方案是编辑注释,但这不是我的EJB
,只是一个依赖项。我怎样才能避免这个异常?
我正在使用带有 JDK 1.7 和 Glassfish 4.0 的 Java EE 6。
cdi - CDI 扩展,改变处理类型
在 Arquillian 的测试中使用 Weld 1.1.13.Final....
假设我向一个领域注入了一些不稳定的东西。我希望拥有注入点的 bean 接收更改事件,例如可能发生更改的属性。考虑创建 CDI 扩展。
捕获 ProcessAnnotatedType 事件并查找在字段注入点上具有自定义注释的所有字段:
此后甚至抓住了字段的所有注入点,并将底层的 WeldField 替换为与“包装器”类型相对应的新字段。否则 bean 验证失败。
但这仅适用于启动期间的东西设置,而不是例如 Arquillian 使用 Bean Manager 来初始化一个注入我的“包装”之一的类。事情失败了,因为 Bean Resolver 使用 Type 作为哈希键来查找 bean。
基本上,我认为我不能用额外的方法“屏蔽”由 CDI 注释(制成 bean)的类来接收自定义事件。本来会很酷,但类型是类型(即不知道如何代理或伪造 equals/hashCode)。
java - 使用 CDI/Weld JAX-RS/RESTEasy 找不到资源
我尝试在 Java SE 环境中的 Netty 上设置 CDI/Weld 和 JAX-RS/RESTEasy,但我得到的只是以下异常:
我的项目具有以下依赖项:
我在 src/main/resources/META-INF 目录中放置了一个 beans.xml 文件来启用 CDI。
启动netty的代码:
示例资源如下所示:
由于所有这些都不起作用,我添加了一个应用程序类:
但是错误信息仍然是一样的。
什么不见了?如何设置 Weld 和 RESTEasy?
java - JBoss 和 Weld 未在 Eclipse 中导入
我正在研究一本 Java EE7 入门书籍中的示例,第一个示例要求我在一个简单的 Maven 项目中使用 Weld。我已将所有文件复制到 Eclipse (Kepler) 中的 Maven 项目中。但是 Main.java 应用程序有一个不起作用的 import 语句:import org.jboss.weld.environment.se.Weld
Eclipse 用以下消息对其进行红色标记:“无法解析导入 org.jboss。” 我去了 Eclipse Marketplace 并下载了最新的 JBoss 包,我认为它应该包含 Weld,但我仍然收到错误消息。
我右键单击该行并选择“修复项目设置”,并且能够选择一个修复来帮助一些其他弹出的错误。但它对这个特定问题所做的只是将消息扩展为“无法解决导入 org.jboss.weld.environment”。当我再次尝试运行修复项目设置时,它没有提供解决方案。
我已经在构建路径工具中进行了挖掘,但我似乎无法弄清楚如何使这个导入工作。