控制JAX-RS应用程序启动

时间:2019-03-09 14:22:58

标签: java maven jax-rs pom.xml

首先,我是JAX-RS的新手。我正在尝试创建一个后端,并且已经进行了pom.xml实现。更具体地说,我有此类

import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;

@ApplicationPath("webapi")
public class MyApp extends Application {

}

,我想知道如何控制它的启动时间,并最终阻止它启动。

类似这样的东西:

import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;

@ApplicationPath("webapi")
public class MyApp extends Application {

    @Override
    public void onStartup() {
        if (!Utils.isConfDataValid()) 
            exit(1);
    }

}

我现在对任何应用程序事件或JAX-RS中的类似事件有了想法。

谢谢!

1 个答案:

答案 0 :(得分:0)

请注意,某些类型的事件或挂钩取决于Web应用程序服务器。
在这种情况下,from django.db.models import IntegerField from django.db.models.functions import Cast ax_char = ( Numbers_char_model.objects .annotate(number_int=Cast('number', IntegerField())) .filter(number_int__lte=20) ) 与您要寻找的内容无关。

请注意,我不建议使用JAX-RS或终止类似的应用程序。


由于System.exit位于JAX-RS堆栈中,因此您可以注册一个Servlet实现以在上下文启动时执行代码。

ServletContextListener

如果您在public class CustomServletContextListener implements ServletContextListener { @Override public void contextInitialized(final ServletContextEvent servletContextEvent) { // Context startup } @Override public void contextDestroyed(final ServletContextEvent servletContextEvent) { // Context shutdown } } 环境中,可以通过用@WebListener注释此侦听器来注册

Servlet 3+

否则,您需要将老式@WebListener public class CustomServletContextListener implements ServletContextListener { 文件用作web.xml