Конструктор Джерси

#java #constructor #jersey #startup

#java #constructor #джерси #запуск

Вопрос:

Как возможно загрузить что-либо при запуске системы? У меня нет «main», где запускается моя программа !?

Ответ №1:

Вы могли бы использовать одноэлементный объект, определенный в Application#getSingletons() .

 public class MyApp extends Application
{
    public Set<Class<?>> getClasses()
    {
        return null;
    }

    public Set<Object> getSingletons()
    {
        Set<Object> set = new HashSet<Object>();
        Foo foo = /* init foo somehow */;
        set.add(foo);
        return set;
    }
}
  

Из RESTful Java (если у вас есть книга, смотрите стр.142):

getSingletons() Метод возвращает список предварительно выделенных веб-служб JAX-RS и @Provider аннотированных классов. Вы, как программист приложения, несете ответственность за создание этих объектов. Среда выполнения JAX-RS выполнит итерацию по списку объектов и зарегистрирует их внутри. Когда эти объекты будут зарегистрированы, JAX-RS также введет значения для @Context аннотированных полей и методов установки.

Ответ №2:

как правило, джерси создается maven. Итак, когда вы выполняете команду maven, создается инициализированный проект.

 mvn archetype:generate -DarchetypeArtifactId=jersey-quickstart-grizzly2 
-DarchetypeGroupId=org.glassfish.jersey.archetypes -DinteractiveMode=false 
-DgroupId=com.example -DartifactId=simple-service -Dpackage=com.example 
-DarchetypeVersion=2.4.1
  

Более подробную информацию смотрите:
https://jersey.java.net/documentation/latest/index.html

Ответ №3:

Вы могли бы написать класс, который реализует ServletContextListener.

     public class MyContextListener implements ServletContextListener {
        @Override
        public void contextInitialized(ServletContextEvent event) {
            //stuff that happens when server is started
        }

        @Override
        public void contextDestroyed(ServletContextEvent event) {
            //stuff that happens when server is turned off
        }
    }
  

Тогда вы бы просто добавили это в свой web.xml файл как дочерний для элемента веб-приложения.

 <listener>
    <listener-class>com.mypackage.MyContextListener</listener-class>
</listener>