问题标签 [codi]
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.
java - deltaspike 集成@ConversationGroup?
最近,我在闲暇时间一直在尝试和测试 deltaspike。它说它集成了 codi 和 seam 3。但是我怎么看不到 @conversationGroup 呢?
任何线索任何人?
谢谢
websphere-liberty - 在 Websphere 自由配置文件 8.5.5 上具有 ejb 无状态的 CODI
如果 web 应用程序包含 @Stateless ejb,我无法启动在 websphere 自由配置文件 8.5.5 上嵌入 CODI 的 web 应用程序。
我得到这个例外:
我已经声明只有当项目中存在 ejb 时才会出现问题(在我的情况下是 @Stateless ejb)。
在这种情况下,应用程序上下文在服务器启动和 webapp 安装/部署时被初始化。这里没问题。
当 webapp 处理第一个 HTTP 请求时,它FacesServlet
被初始化并被CodiNavigationHandler
实例化。
该方法CodiNavigationHandler.isAddViewConfigsAsNavigationCaseActivated()
在构造函数中被调用并尝试获取对 CODI 的引用JsfModuleConfig
。这JsfModuleConfig
有一个 @ApplicationScoped 注释,并且 beanManager 尝试获取应用程序上下文。
此应用程序上下文已创建(当部署 webapp 时)但LibertyContextsService.initApplicationContext(String)
尚未调用。因此 ThreadLocal 变量上的应用程序上下文为 nullLibertyContextsService.applicationContexts
并发生错误:
重现:
- 创建动态 Web 项目
- 在 WEB-INF 下添加一个几乎空的 beans.xml(只是一个
beans
元素) - 在 WEB-INF 下添加一个几乎空的 faces-config.xml(只是一个
faces-config
元素) - 添加带有 faces/index.xhtml 的 web.xml
- 复制 WEB-INF/lib 中的 codi jars ( http://www.apache.org/dyn/closer.cgi/myfaces/binaries/myfaces-extcdi-assembly-jsf20-1.0.5-bin.zip )
添加一个无状态bean:
/li>添加一个jsf bean:
/li>添加一个简单的 jsf 网页:
/li>
注意:如果您删除 ejb 上的 @stateless,应用程序将正常工作。
jsf-2 - Myfaces CODI 与 ClientSideWindowHandler - IE9 后退按钮行为
如果在我的 JSF 应用程序中使用 CDI 和 MyFaces CODI,我有一个这样的链接:
在我单击链接并导航到第 2 页后,在 IE9 中按后退按钮不会返回上一页,而只是重新渲染第 2 页。我可以长按按钮以调出页面列表并选择最后一个。列表顶部是 CODI 的窗口处理程序使用的“正在加载...”页面。
当 MyFaces CODI 配置为使用ClientSideWindowHandler
.
Firefox、Chrome 和 IE11 按预期工作(IE10 未经测试)。不幸的是,大多数用户将是 IE9。
我正在使用 CODI 为窗口范围提供的功能,因此没有处理程序就无法做到。
有谁知道解决这个问题的方法?
java - MyFaces CoDI - 对话/WindowContext
是否有可能在 MyFaces CoDI 中的对话或其上下文之间切换。我的具体用例是我想实现一种 CustomerBeans 的历史,包括一个 CustomerEntity。如果选择了其中一个条目,则应加载适当的对话/上下文。
我目前的实现是通过 JBoss Seam 2 实现的,并且可以切换对话。
Manager.instance().switchConversation(selectedConversation.getId());
谢谢!
java - 在 Apache Tomcat 7 中部署 MyFaces CODI + Weld + JSF 时出错
我是使用 JSF 的新手,我注意到 JSF 没有提供一些有用的注释,例如 @ViewAccessScoped (CODI)。为了使用 CODI,我需要使用 CDI 依赖项,所以我用 Weld 配置了我的项目。
然后,JSF + Weld + Tomcat 7 工作正常,将注释范围更改为 Weld 注释,@ManagedBean 更改为 @Named,@NamedProperty 更改为 @Inject。
否则,当我现在尝试使用 CODI 部署我的 Tomcat 服务器时,我有以下堆栈跟踪(是否使用 @ViewAccessScoped 注释等 CODI 库)并且服务器关闭:
这是一个非常奇怪的错误日志。
要点是:如何在 Tomcat 7 下将 CODI 与 JSF 一起使用?我想使用 CODI 提供的注解 @ViewAccessScoped。
CODI 与 Weld 兼容吗?这是一个非常奇怪的堆栈跟踪,因为没有 CODI,一切正常。
当我尝试使用 JSF + CODI + Tomcat 7 部署我的项目时,预计我会遇到一些错误,因为 CODI 在某些 CDI 库上工作(但我的项目工作,没有使用 CODI)。然后,复制的堆栈跟踪的主要部分是:
下面列出了我正在使用的库:
我尝试使用 TomEE,我需要的唯一库是myfaces-extcdi-bundle-jsf20-1.0.6.jar并且一切正常。
否则我不能使用 JSF v2.2+。当前配置的带有 TomEE 的 JSF 版本是2.1 。所以,我不想迁移到 TomEE,因为该标签只能在 2.2+ 版本中访问。
java - @Inject 的刻板印象可能吗?
我的应用程序中有一个重复出现的注释,它注入了一个由 CDI 生产者创建的对象。
我想知道是否可以写一个刻板印象“@FlatGeometryLiveInject”,这样我只需要写
并且对象被注入。这对 CDI 1.1 或任何 DI 框架是否可行?
jsf - 为什么JSF参数传递有时参数为空?
我将使用的 managedbean (myBean) 作为参数传递给另一个 managedbean(PersonRoleSearch),以便我可以调用第一个 bean (myBean) 的方法。但有时参数为空,因此我得到空指针异常。我无法解释为什么会发生这种情况。
继承 Personrolesearch 的 init 方法
可能是什么原因?
jsf - 为什么我的 ViewAccessScoped Bean 没有被销毁?
我目前正在调查我编写的应用程序中的内存泄漏。在对堆转储进行一些分析后,我发现我将注意力集中在 MyFaces CODI 的奇怪行为上。
我大量使用 ViewAccessScope 并最近修改了我的代码以记录 @PostConstruct 和 @PreDestroy 回调以及相应实例的哈希码。
PostConstruct 回调按照我的预期执行,例如,当来自一个完全不同的视图时,它没有使用 bean。让我烦恼的是,从未调用过 @PreDestroy 回调(即使我(我认为我)确保在以下视图中的任何地方都没有对 bean 的引用)。
让我更加困惑的是,我编写了一个简单的小测试程序,其中包含 3 个视图,每个视图都由一个 ViewAccesScoped Bean 支持。当更改视图时,bean 会像我预期的那样被破坏,因为我来自的 bean 没有在 bean 中的任何地方引用我正在导航到的视图。
所以我想我的问题是,关于 ViewAccessScoped bean 的清理/销毁行为,除了 bean 引用之外还有其他因素需要考虑吗?
我在 JBoss AS Final 7.1.1 上使用版本 1.0.5 中的 MyFaces CODI