如何知道Spring / CXF何时准备好接受请求?

时间:2016-09-16 20:11:46

标签: java spring tomcat cxf

我有一个使用Apache CXF和JAX / RS实现API的java Web应用程序。我们在tomcat下运行我们的webapp。我需要在我的应用程序中实现一些调用外部服务的东西,这可能会再次调用我的应用程序。我需要在CXF完成初始化之后调用该外部服务,并准备接受外部API请求。我已经检查了servlet上下文侦听器,CXFServlet,应用程序上下文刷新等,但是在CXF开始接受请求的过程中看不到任何被调用的内容。或者我是否需要从tomcat触发某些事件?

1 个答案:

答案 0 :(得分:0)

如果在Spring配置中将CXF依赖项定义为bean,它将在应用程序启动时加载并准备就绪。如您所知,在应用程序启动期间加载并解析了spring bean,您还可以进行预初始化和后初始化函数,例如: @PostConstruct。

参考https://www.luckyryan.com/2013/06/15/apache-cxf-exception-handler-for-jaxrs-rest/的配置示例:

<!-- rest container -->
<jaxrs:server id="sampleSerivceREST" address="/rest">
    <jaxrs:serviceBeans>
        <ref bean="sampleServiceRESTGateway"/>
    </jaxrs:serviceBeans>
    <jaxrs:providers>
        <bean class="org.codehaus.jackson.jaxrs.JacksonJsonProvider"/>
        <bean class="com.luckyryan.sample.service.ExceptionHandler"/>
    </jaxrs:providers>
</jaxrs:server>

<!-- soap container -->
<jaxws:endpoint
        id="sampleServiceSOAP"
        implementor="#sampleServiceSOAPGateway"
        address="/soap"
        serviceName="sampleSoapService"/>