我正在尝试在GlassFish 3上使用JSF2设置在线跳棋游戏,其中所有游戏的逻辑都由EJB处理。 事情是我希望玩家A的显示器在玩家B移动后得到更新。在玩家B完成他/她的移动之后,我正在呼叫
pushContext.push("groupName")
代码的bean(虽然有<icecore:push group="groupName" />
标记在xhtml代码中)
问题是(从我看来)玩家A的板对象尚未从EJB更新,所以没有什么可以在显示器上更新。玩家A的棋盘显示只有在他/她完成他/她的移动后才会更新(此时它的bean代码要求从EJB获得更新的棋盘)。
我以为我找到了解决方案here。我的计划是在xhtml中设置一个JS函数,bean代码将使用<icep:register>
标记调用该函数,并且该JS函数将调用bean代码中的java函数,该函数将要求更新的板EJB然后会更新显示
事情是我找不到任何地方如何实现任何'icep'标签。当我把这个标签放入我的代码时,我得到一个编译错误。
我需要添加到我的项目中才能使其工作?
还是有一种完全不同(更好)的方法来解决我的问题?
欢呼声, 埃雷兹
答案 0 :(得分:0)
<icep:register>
是ICEpush JSP集成的一部分,仅适用于JSP页面,而不是JSF页面。这可能就是你得到编译问题的原因。您可以使用javascript注册api。但是你看过使用PortableRenderer了吗?如果你的ejb在同一个jvm中,这可能会起作用并且对你来说更容易。退房:
http://wiki.icesoft.org/display/ICE/Ajax+Push+-+APIs#AjaxPush-APIs-PushingfromoutsidetheJSFcontext
谢谢, 菲利普