Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Инициализация приложения при запуске Tomcat


Автор: Egorka39 26.1.2016, 15:07
Нужно чтоб при запуске Tomcat запускался фоновый процесс который делал бы запрос к SQL Server и на основании результата запроса создавался объект.
Есть вот такой кусок кода.
Код

package com.javacodegeeks.enterprise.rest.jersey;

import org.apache.log4j.Logger;

import javax.annotation.PostConstruct;
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import java.io.*;

@Path("/xmlServices")
public class JerseyRestService extends Thread {
    public static Logger log = Logger.getLogger(JerseyRestService.class);

    @POST
    @Path("/send")
    @Consumes(MediaType.TEXT_PLAIN)
    //@Consumes(MediaType.APPLICATION_XML)
    /*
    public Response consumeXML( Student student ) {

        String output = student.toString();
        log.info(student);
        return Response.status(200).entity(output).build();
    }
*/
    public Response consumeXML( String student ) {
        String output = student.toString();
        String fName = "potuplenie.csv";
        write(fName,output);
        log.info(fName);
        log.info("Response data length: " + student.length());
        return Response.status(200).entity(output).build();
    }

    public static void write(String fileName, String str) {
        try {
            FileOutputStream fos = new FileOutputStream(fileName);
            Writer out = new OutputStreamWriter(fos, "UTF8");
            out.write(str);
            out.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}


Просмотрел все возможные примеры.
Вставлял вот такой код и пытался хотя бы проверить срабатывает от или нет
Код

@PostConstruct
public void init() {
  log.info("ok");
}
}

но лог не формируется

Автор: Samotnik 16.2.2016, 00:24
Egorka39, добавь в web.xml свойство load-on-startup
Код

<servlet>  
   <servlet-name>myServlet</servlet-name>  
   <servlet-class>com.my.MyServlet</servlet-class>  
   <load-on-startup>0</load-on-startup>  
  </servlet>  


Второй вариант, посмотри в сторону ServletContextListener

Автор: Egorka39 24.2.2016, 16:40
Спасибо, буду пробовать

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)