Open d-frolov opened 8 years ago
Запускаем сервер, пытаемся добавить пользователя В логе две записи:
15:40:19.963 [qtp1523553211-24] ERROR server.rest.RestAppV1 - [+] Started application... 15:40:23.924 [qtp1523553211-24] ERROR class server.rest.UserServlet - Initialized 15:40:23.966 [qtp1523553211-24] ERROR server.rest.RestAppV1 - [+] Started application... 15:40:23.966 [qtp1523553211-24] ERROR class server.rest.UserServlet - Initialized
ну черт с ним, с error, напишите лучше logger.info(...) Но почему два раза? У вас дважды инициализируется AccountService.
И посмотрите когда проиходит эта инициализация. При первом вызове сервлета. O_o АккаунтСервис должен инициализироваться в процессе старта сервера, но никак не во время работы.
Предлагаю остановиться в написании новых фичей и сосредоточится на рефакторинге сущесвующего кода. Там наверняка еще много интересного можно найти
Для начала проверьте весь функционал по api
Да, при первом вызове сервлета :) Когда у RestAppV1 вызывается getSingletons():
@Override
public Set<Object> getSingletons() {
logger.error("[+] Started application...");
final HashSet<Object> objects = new HashSet<>();
AccountService accountService = new db.services.impl.ExampleAccountService();
objects.add(new UserServlet(accountService));
objects.add(new SessionServlet(accountService));
return objects;
}
logger.error - это остаток от прошлой баги фичи, когда в джар не копировались настройки log4j2 и логгер игнорил любые записи в лог, кроме ошибок.
Странно, что два лога за раз, я посмотрю, что там такое.
Хорошо, тогда посмотрим на инспекции и приведем в порядок кодстайл.
Просто у меня были проблемы с тем, как запихнуть два сервлета в один хэндлер, и я нашел на просторах интернетов способ, как это сделать:
final ServletHolder api_v1Holder = new ServletHolder(ServletContainer.class);
api_v1Holder.setInitParameter("javax.ws.rs.Application",RestAppV1.class.getCanonicalName());
contextHandler.addServlet(api_v1Holder,"/api/v1/*");
Я уверен, что это можно сделать лучше, но не знаю, как это сделать.
Спасибо, сделаем через контекст.
Сервер стартует, но уже добавить пользователя я не могу. Он ошибочно возвращает мне ошибку. Хотя в реальности добавляет данные в map Проверьте работу api