当前位置: 首页 > 知识库问答 >
问题:

在WebSphereApplicationServer中一起实现JSF-2.3和CDI

邵伟
2023-03-14

我最近升级到使用甲骨文新的JSF-2.3,其中涉及添加依赖作为一个外部库在我的pom.xml,因为我使用maven,而不是以前使用WebSphereApplication服务器的内置JSF-2.2功能。我想升级以利用新的f: web套接字功能,它允许我将消息从服务器推送到客户端,以实现一些巧妙的异步页面加载。

但是在我们开始之前,一旦我升级,我注意到我的@ManagedBean注释被弃用了。经过一些快速的谷歌搜索,我发现我应该使用CDI注释,如@命名等。这导致我的JSF-2.3没有找到我的@命名CDI-1.2托管bean问题,从中我了解到我不能将外部JSF库与是斯的内置CDI-1.2功能一起使用。

我的问题是,根据服务器端的JSF-2.3规范,我需要使用CDI@inject注释将“PushContext”注入托管bean上的变量,如下所示:

@Inject @Push(channel="foo")
private PushContext bar;

我一直找不到一个与JSF等价的@Inject注释,它可以将一个实例注入我的PushContext变量,例如,我尝试了@ManagedProperty。因此,我需要在JSF2.3上实现CDI,以实现这一点。

  • 我曾尝试在WAS中使用内置CDI功能,代码如上述问题所示

我不知道该如何使用WAS中的新JSF-2.3功能。如果我不能用自定义JSF库实现CDI,我肯定会错过一些东西。。。

我也听说过一种叫做“cdi使能器”的东西,这些能帮助我吗?它们合法吗?或者只是有人为了做点什么而做的一些黑客?

帮助

共有1个答案

凌嘉志
2023-03-14

经过大量的研究和论坛调查,我得出结论,让JSF-2.3和CDI-1.2一起使用WAS中的f:websocket功能几乎是不可能的。请参阅我在IBM支持页面上的帖子,它证实了这一点。

使用JSF-2.2仍然可以使用web套接字的一种方法是使用Javax。正如@Gas在我之前的问题中指出的那样,websocket包。然而,这种web套接字实现的局限性在于,仅将SessionScoped ManagedBean中包含的数据发送到该会话的客户机远不如使用JSF-2.3中的f:websocket时那么容易。

 类似资料:
  • Go中的map在底层是用哈希表实现的,你可以在 $GOROOT/src/pkg/runtime/hashmap.goc 找到它的实现。 数据结构 哈希表的数据结构中一些关键的域如下所示: struct Hmap { uint8 B; // 可以容纳2^B个项 uint16 bucketsize; // 每个桶的大小 byte *buckets; // 2^B个Buc

  • 我有一个复杂的jsf页面,其中有一些在PrimeFaces中开发的小部件。到目前为止,应用程序是完全ajaxified的,这意味着没有提交,但是所有的事件和更新都是通过Ajax行为来处理的(这不是必须的,而是一个很好的特性)。我还做了一个来切换语言: 在selectonemenu中有一个ajax更新: 这很好用,是首选的解决方案,因为它是Ajax,但是 已编辑 欢迎任何建议。

  • 我正试图将应用程序设置为使用Tomcat8和JSF2.3运行,但出现了以下错误: 我是否遗漏了一些库?,也许版本是错误的? 谢了。

  • 我想在我的JSFWeb应用程序中实现一个像gmail这样的加载页面。 用户输入登录名和密码,我把他带到一个简单的进度条页面(加载应用程序页面)。 一旦进度条达到100%,应用程序页面就会显示出来。 (命中100%意味着它根据应用程序页面初始化的进度获得进度值)。 现在,我真正需要什么来实现这一点,支持bean范围、facelets数量、faces配置。。 其他信息: > @WebFilter(fi

  • 问题内容: 我刚刚开始使用JSF,看起来很棒,但是我似乎无法弄清楚这最后的障碍。 我习惯了传统的Jquery AJAX函数,这在我的书中很完美。但是我希望找到一种方法使其与JSF协调工作。 这是一个说明我的情况的方案。 我的网站上有一个消息传递页面,用户可以在其中互相发送消息。所以在我的xhtml页面中,我看起来像这样: 效果很好。用户可以发布他们的消息,并将其加载到上面的对话div中。但是现在我