我在 jsf-icefaces 应用程序中集成了一个 flex 应用程序(在带有 ice:outputmedia-tag 的 jspx 站点中),并希望通过远程从 flex 访问 jsf 注入的同一 bean 实例。
我已经将 blazeds 连接到了一个 java-bean。这个bean - 像所有其他bean一样 - 通过注入jsf来获取其他bean,但是当我通过flex远程访问bean时,它不会保存注入的bean(如localizer和accesmanager,都是会话范围的)并且我无法连接到jsf 会话(FacesContext.getCurrentInstance() 为空)。这是因为 flex 创建了一个新的 bean 实例,我认为它与 jsf 注入的当前实例不同。
我可以通过在 java bean 中创建一个新的实体管理器从 flex 连接到数据库,但这不是我想要的,因为它又是另一个实体管理器......我想通过 accessmanager-bean 持久化并获取数据。
我知道 exadel fiji 和 flamingo,但我无法使用 fiji,因为我的 jsf 应用程序包含 icefaces 组件,然后它不适用于 fiji 需要的richfaces。和 flamingo 仅适用于 jboss seam 和 spring。这样对吗?
我还阅读了 spring-flex-integration,但是 jsf 应用程序没有使用 spring 创建,我不想将 spring 集成到这么大的 jsf 应用程序中。昨天我阅读了有关 FlexFactory 界面的信息。这个接口我必须在我自己的工厂中实现,并将其设置在 blazeds 的 service-config.xml 中,因为工厂读取了这个。我仍然实现自己的工厂,但我只能通过 servlet 上下文获取应用程序范围的 bean,而我通过 FlexContext.getServletContext().getAttribute("Bean"); 而不是会话范围的bean...
我希望有机会连接 throw flex 和 jsf ...谢谢!