@JustSokol
newby programmer

Как логировать в БД запрос/ответ вебсервиса (в частности jax-ws на tomcat/glassfish)?

Делаю тестовое задание.
Разработал простой веб-сервис jax-ws под Tomcat.

Один из пунктов задания: "Ответ и запрос (веб-сервиса) - логировать в БД".
Разобрался с перехватом SOAP сообщений с помощью HandlerChain.
Что делать дальше с SOAP-сообщением - не совсем понятно.

Может быть они подразумевают какую-то распространенную, "общепринятую" практику (прием) логирования запроса/ответа веб-сервиса в БД? или это не совсем тривиальная задача и нужно продумать все самому?
(я понимаю что логичнее всего спросить у тех кто составлял задачу, но вдруг кто-то скажет "это очень тривиальный момент и обычно такое делается так-то")

Только начал изучать веб-сервисы, java EE и все остальное (хотя более общие базовые знания до этого были).
И вот думая над этой подзадачкой не понял следующие вопросы:
1)В Tomcat есть какая-то база данных по умолчанию (сразу сама запускается, настраивается итд - с ней можно сразу работать), которую можно использовать для логирования?
Или надо ее разворачивать самому на сервере?
Или есть только возможность организовать взаимодействие с какой-то внешней БД?
2)Что нужно при логировании заносить само сообщение (или только данные), время/дата системное, вторую сторону (клиента) ?
  • Вопрос задан
  • 1040 просмотров
Решения вопроса 1
@bromzh
Drugs-driven development
Томкат не поддерживает всё из JavaEE, это лишь контейнер сервлетов, а не полноценный ApplicationServer. Так что либо используй TomcatEE, либо другие сервера (я рекомендую WildFly).

Про запись лога в БД можно почитать тут.
Ещё можно использовать interceptors (перехватчики). Это часть JavaEE, перехватывать можно методы бинов. Подробнее тут и в гугле.

В томкате нет БД, там вообще всё по минимуму. Чтобы подключить БД надо самому добавлять jar-файлы с реализацией JPA, самому настраивать базу в приложении. При этом, JTA и другие штуки будет сложно подключить и настроить, потому что томкат не ApplictionServer. Лучше взять WildFly. Там уже есть один DataSource по-умолчанию (БД в оперативной памяти, очищается после перезапуска сервака), и легко подключить новый источник к самому веб-серверу.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы