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

标签 java spring tomcat cxf

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

最佳答案

如果您在 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"/>

关于java - 如何知道 Spring/CXF 何时准备好接受请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39539402/

相关文章:

java - 使用大数据进行测试时,正则表达式需要花费大量时间

java - 这个 JPQL 查询字符串有什么问题

java - Spring 中 AspectJ AOP 配置的问题:java.lang.IllegalArgumentException: error at::0 找不到引用的切入点

java - 使用 Spring 注解注入(inject)父类依赖的正确方法

云中Tomcat集群安装

tomcat - 在openshift tomcat中部署后如何避免每次覆盖server.xml

java - 是否需要从应用程序的 main 方法切换到 Swing 线程?

java - 无法从 msql 表更新结果集

java - 当从@transactional公共(public)方法调用私有(private)方法时,私有(private)方法中会使用相同的事务还是不使用事务

tomcat - JDBC Resource Pool with Tomcat6 on Centos5.5 和utf8问题