登录后,存储在SessionScoped bean中的用户数据。我希望每5秒钟将每个帐户存储在会话中并发送到后端。我的计时器
@Singleton
@Startup
public class FrontendTimer {
@Inject
private UserContext userContext;
@Schedule(second = "*/5", minute = "*", hour = "*", persistent = false)
@Asynchronous
public void atSchedule() throws InterruptedException {
System.out.println("Get Logged user stored in the session each 5 seconds ");
System.out.println("FR " + userContext.getAccount().toString());
}
}
启动调度程序的唯一方法是创建@Startup和@Singleton类。将用户数据保存在前端的唯一方法是将帐户保存到SessionScoped CDIBean,不推荐使用JSF原生bean。
您将得到如下错误:WELD-001303:范围类型javax没有活动上下文。企业上下文会议范围
项目地点在这里https://github.com/armdev/eap单独上课https://github.com/armdev/eap/blob/master/eap-web/src/main/java/io/project/app/beans/FrontendTimer.java
基本上,我希望有一个标准的计时器,可以从会话范围中获取数据。
您当前的方法不会像您预期的那样工作,因为每个调度程序调用都将在与会话完全隔离的上下文中发生(因此出现无活动上下文…
错误消息)。
我建议你在这里使用简单的倒置。在应用程序范围内的单例中,添加一个简单的List
@Singleton
public class SessionManager {
private List<String> currentSessions;
@Schedule(second = "*/5", minute = "*", hour = "*", persistent = false)
@Asynchronous
public void atSchedule() throws InterruptedException {
//Do something with currentSessions
}
public void add(String account){
currentSessions.add(account);
}
public void remove(String account){
currentSessions.remove(account);
}
}
@SessionScoped
public class UserContext implements Serializable {
@Inject
private SessionManager sessionManager;
/*
...
*/
public void sessionCreated(){
sessionManager.add(account.toString());
}
public void sessionDestroyed(){
sessionManager.remove(account.toString());
}
}
@WebListener
public class SessionListener implements HttpSessionListener {
@Override
public void sessionCreated(HttpSessionEvent se) {
HttpSession session = se.getSession();
FacesContext context = FacesContext.getCurrentInstance();
UserContext userContext = (UserContext) session.getAttribute("userContext");
userContext.sessionCreated();
}
@Override
public void sessionDestroyed(HttpSessionEvent se) {
HttpSession session = se.getSession();
FacesContext context = FacesContext.getCurrentInstance();
UserContext userContext = (UserContext) session.getAttribute("userContext");
userContext.sessionDestroyed();
}
}
我一直在尝试使用nativescript创建一个android应用程序。我正在使用fetch模块从服务器获取响应。当我试图从httpbin获得响应时。org/get,没关系。但当我试图从本地服务器获取响应时,网络请求失败。错误 发送到httpbin。组织/获取- 发送到本地主机:8000/api- 当我尝试从纯节点中的localhost:8000/api获取响应时。js通过请求模块。它工作得很好。
这是我收到的错误: 请求的资源上不存在“< code > Access-Control-Allow-Origin ”标头。因此,不允许访问源“https://s.codepen.io”。如果不透明响应满足您的需要,请将请求的模式设置为' < code>no-cors ',以便在禁用cors的情况下获取资源。 我将模式设置为但仍然没有运气。
我有一个简单的web应用程序,我从应用程序的前端获取json。我有一个对象,它包含很少的属性和一个对象数组。 它看起来像这样: 我通过使用。我用向我的PHP-Laravel后端发送了一个请求,我想对它进行解析。 这就是我所拥有的: 我尝试像这样获取json数据: 但它就是不起作用。我总是遇到一个错误,我试图访问对象上的,但它不存在。我也试过这样做: 但是我也有同样的问题。我做错了什么,我看到了关于
问题内容: 我最近将应用程序中的hiberbnate模式更新为5.4.4.Final。现在,在部署过程中我面临以下异常。 我使用以下persistence.xml。 经过进一步调查,我发现根本原因是:hibernate使用 SequenceInformation 接口进行序列元数据操作 但是,我的应用程序使用如下序列: 该 Long.MAX_VALUE 等于9223372036854775807,
问题内容: 每个人,我都试图制作一个音乐应用程序,为此,我在自己的作品中创建了一个Horizontal ,而我的Horizontal 正在获取带有艺术家姓名的图像。 但是单击后,我加载了另一个活动。在我的其他活动,我试图在从火力加载SongsData 用。 但是问题是我没有从Firebase获取数据,而是返回了空数据。我在下面提供了我的代码,这是我的Firebase数据库的屏幕截图:-Sc
我正在React中的useEffect()内尝试从axios获取数据。我测试了后端,它工作正常,但在前端,我得到了一个错误401(未经授权) 反应代码: 后端代码: 服务器.js 项目路线.js 我得到的错误是: 如果有人能帮我找出错误,我会很高兴的