作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我做了一个 jax rs jersey 网络服务。服务器重新启动时,我必须从数据库加载数据。我现在正在做的是调用这个 url
http://localhost:8080/jersey-openshift-quickstart2/logisure/load
它从数据库中加载数据,并通过调用线程每 20 秒更新一次。基于此数据,其他 API 功能起作用。现在,当我将它部署到云上时,我发现服务器每 2-3 天重启一次,所以我需要我的网络服务自动调用
http://localhost:8080/jersey-openshift-quickstart2/logisure/load
当我的服务器重新启动时。我该怎么做?
最佳答案
您可以编写一个 ServletContextListener,它从 contextInitialized() 方法调用您的方法。您将监听器附加到 web.xml 中的 webapp,例如
<listener>
<listener-class>listeners.MyListener</listener-class>
</listener>
或者,如果您使用的是 Java 配置而不是 web.xml,则可以使用 Java 代码执行相同的操作。
这是上下文监听器的代码:
package listeners;
public class MyListener implements javax.servlet.ServletContextListener {
public void contextInitialized(ServletContext context) {
//load data here
}
}
这将适用于任何 Servlet 容器和任何框架(您不依赖于 Jersey)。
关于java - 贾克斯 rs : How can I run a method automatically everytime my server restarts?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31650520/
我是一名优秀的程序员,十分优秀!