相关疑难解决方法(0)

在JSF托管bean中启动新线程是否安全?

我无法找到一个明确的答案,确定在会话范围内的JSF托管bean中生成线程是否安全.线程需要调用无状态EJB实例上的方法(依赖注入到托管bean).

背景是我们有一个需要很长时间才能生成的报告.这导致HTTP请求由于我们无法更改的服务器设置而超时.因此,我们的想法是启动一个新线程,让它生成报告并暂时存储它.与此同时,JSF页面显示了一个进度条,轮询托管bean直到生成完成,然后再发出第二个请求来下载存储的报告.这似乎有效,但我想确定我所做的不是黑客.

concurrency jsf ejb java-ee

45
推荐指数
2
解决办法
2万
查看次数

使用JSF/Java EE从数据库进行实时更新

我有一个应用程序在以下环境中运行.

  • GlassFish Server 4.0
  • JSF 2.2.8-02
  • PrimeFaces 5.1决赛
  • PrimeFaces Extension 2.1.0
  • OmniFaces 1.8.1
  • EclipseLink 2.5.2具有JPA 2.1
  • MySQL 5.6.11
  • JDK-7u11

有几个公共页面从数据库中延迟加载.一些CSS菜单显示在模板页面的标题上,如显示类别/子类别特征,最畅销,新到达等产品.

CSS菜单根据数据库中的各种产品类别从数据库动态填充.

这些菜单填充在每个页面加载上,这是完全没有必要的.其中一些菜单需要复杂/昂贵的JPA标准查询.

目前,填充这些菜单的JSF托管bean是视图范围的.它们都应该是应用程序作用域,在应用程序启动时只加载一次,并且只有在更新/更改相应数据库表(类别/子类别/产品等)中的某些内容时才更新.

我做了一些尝试来理解WebSokets(从未尝试过,对WebSokets来说是全新的),就像这样这个.他们在GlassFish 4.0上运行良好,但它们不涉及数据库.我仍然无法正确理解WebSokets的工作方式.特别是涉及数据库时.

在这种情况下,当更新/删除/添加到相应的数据库表时,如何通知关联的客户端并使用数据库中的最新值更新上述CSS菜单?

一个简单的例子很棒.

jsf java-ee websocket primefaces java-ee-7

29
推荐指数
2
解决办法
2万
查看次数

使用计时器在JSF托管bean中为计划任务生成线程

我想知道是否可以Timer在应用程序范围内使用bean.

例如,假设我想创建一个计时器任务,每天一次向每个注册会员发送一堆电子邮件.我试图尽可能多地使用JSF,我想知道这是否可以接受(我知道它有点奇怪).

到目前为止,我已经使用了上述所有内容了ServletContextListener.(我不想使用任何应用程序服务器或cron作业,我想在Web应用程序中保留上述内容.)

是否有一种聪明的JSF方式,或者我应该坚持使用旧模式?

jsf timer scheduled-tasks jsf-2

28
推荐指数
1
解决办法
2万
查看次数