我是网络服务的新手,我有一些问题,但我希望通过询问得到更清晰的图片。
我用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;
}
}
如何实现这个以及在哪里编写启动线程clases?也许是一个示例代码或链接,看看它是如何完成的将是非常有用的。
韩国社交协会
答案 0 :(得分:3)
如果您使用Spring with CXF,您可以创建一个bean并实现InitializingBean接口,然后在afterPropertiesSet()方法中,您可以根据需要启动线程。 Spring的另一个替代方法是对依赖注入后要调用的方法使用:@PostConstruct注释。
如果您不使用Spring,则可以设置ServletContextListener来完成工作。有关如何设置上下文侦听器的更多信息,请参阅我的答案here。
现在有很多方法可以从启动时启动的线程中获取数据。你只需要提出一个更具体的问题(如果你不能使它工作),我们将很乐意提供帮助。