Нет соединения с PostgreSQL при работе через TOMCAT
Столкнулся с проблемой выдачи информации из БД постгрес при запуске приложения через ТОМКАТ.
Запуск через консоль SERVICE_BOOK.getAllBooksDto( ) (должен давать всю инфо из БД) формирует инфу и выдает результат поиска всего что должен.(т.е все работает).
При переводе этого процесса на том кат, проверочный объект
выводит, а далее вызов SERVICE_BOOK.getAllBooksDto( ) кидает ошибку
java.lang.IndexOutOfBoundsException: Index 0 out of bounds for length 0.
Как я понял не находит проперти и путь к БД, поэтому в созданный список ничего не передается.
Подскажите как установить коннект с БД.
основной код:
@WebServlet("/book")
public class App extends HttpServlet {
private static final ServiceBook SERVICE_BOOK = new ServiceBookImpl();
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
resp.setStatus(200);
resp.setContentType("text/html");
PrintWriter out = resp.getWriter();
//проверка вывода
BookDto bookDto = new BookDto();
bookDto.setAuthor("kon");
bookDto.setTitle("kon");
out.write("<div>"+bookDto+"</div>");
//вызов нужного сервиса
try {
out.write("<h1>Book</h1>");
List<BookDto> bookDtos = new ArrayList<>();
bookDtos.addAll(SERVICE_BOOK.getAllBooksDto());
if (!bookDtos.isEmpty()) {
for (BookDto bDto : bookDtos) {
out.write("<div>"+bDto+"</div>");
}
}
} catch (Exception e) {
out.write("<div>"+e+"</div>");
}
}
коннект:
public class DbConfiguratorBooks {
private static Connection connection;
private static final Logger loger = LogManager.getLogger("connect db");
public static void initDbConnectionBooks() throws SQLException, ClassNotFoundException { // метод подключения к базе данных
String host = getUrl().get(0);
String user = getUrl().get(1);
String pass = getUrl().get(2);
String url = getUrl().get(3);
String local = getUrl().get(4);
loger.info("data on connect db --> " + local);
Class.forName("org.postgresql.Driver");
connection = DriverManager.getConnection(local);
}
public static Connection getConnectionBooks() throws SQLException {
if (connection == null) {
try {
initDbConnectionBooks();
} catch (SQLException | ClassNotFoundException e) {
throw new RuntimeException(e);
}
}
return connection;
}
public static List<String> getUrl() {
Properties properties = new Properties();
List<String> inter = new ArrayList<String>();
String local = "";
String host = "";
String user = "";
String pass = "";
String url = "";
try {
FileInputStream fis = new FileInputStream("src/main/resources/config.properties");
properties.load(fis);
host = properties.getProperty("db.host.remove.books.url");
inter.add(host);
user = properties.getProperty("db.host.remove.books.user");
inter.add(user);
pass = properties.getProperty("db.host.remove.books.password");
inter.add(pass);
url = properties.getProperty("db.host.remove.books.fullurl");
inter.add(url);
local = properties.getProperty("db.host.local.books");
inter.add(local);
} catch (IOException e) {
loger.error("not connect with BD", e);
}
return inter;
}
}