运行在Web服务Apache CXF中的后台线程

时间:2014-04-10 14:17:45

标签: apache web-services tomcat cxf

我是网络服务的新手,我有一些问题,但我希望通过询问得到更清晰的图片。

我用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?也许是一个示例代码或链接,看看它是如何完成的将是非常有用的。

韩国社交协会

1 个答案:

答案 0 :(得分:3)

如果您使用Spring with CXF,您可以创建一个bean并实现InitializingBean接口,然后在afterPropertiesSet()方法中,您可以根据需要启动线程。 Spring的另一个替代方法是对依赖注入后要调用的方法使用:@PostConstruct注释。

如果您不使用Spring,则可以设置ServletContextListener来完成工作。有关如何设置上下文侦听器的更多信息,请参阅我的答案here

现在有很多方法可以从启动时启动的线程中获取数据。你只需要提出一个更具体的问题(如果你不能使它工作),我们将很乐意提供帮助。