我是网络服务的新手,我有一些问题,但我希望通过提问得到更清楚的了解。
我使用 Apache CXF 创建了一个简单的 Web 服务,它可以正常工作。 我在启动时构建一些对象,例如数据库连接或...例如一个新线程。
我想要以下场景: - 所有请求都应该只访问 web 服务的已发布方法。 -所有方法都必须访问正在运行的后台启动线程的变量。
因此线程将在后台运行,发布的方法将访问存储在……也许是静态变量中的结果。
目前我使用的是TomcatServer7
它的方法发布的类看起来像这样:
public class OperatorClass {
public int add(int a, int b){
return a+b;
}
public int OneArgument(int a){
return a+45;
}
}
如何实现这个以及在哪里编写启动线程类?也许一个示例代码或一个链接来查看它是如何完成的将非常有用。
感谢
最佳答案
如果您将 Spring 与 CXF 一起使用,您可以创建一个 bean 并实现 InitializingBean界面,然后在afterPropertiesSet()您可以根据需要启动线程的方法。 Spring 的另一种选择是使用:@PostConstruct在依赖注入(inject)后要调用的方法上的注释。
如果你没有使用 Spring 那么你可以设置 ServletContextListener做这项工作。看我的回答here有关如何设置上下文监听器的更多信息。
现在有很多方法可以从您启动的线程中获取数据。您只需提出一个更具体的问题(如果您无法解决问题),我们将很乐意提供帮助。
关于apache - 在 Apache CXF 构建的 Webservice 中运行的后台线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22990710/