Я разрабатываю приложение Spring MVC, используя ActiveJDBC в качестве моего ORM, сервера Tomcat и IntelliJ в качестве моей IDE.
Для необходимой функциональности ActiveJDBC требует некоторых манипуляций с байтовым кодом (называемых ORM инструментированием) скомпилированных классов. Поэтому после этапа компиляции к скомпилированным классам добавляются статические методы. Все это хорошо, однако, когда я пытаюсь развернуть артефакт своего веб-приложения на Tomcat, WAR содержит скомпилированные классы до манипулирования байтами (инструментирование).
Чтобы включить в скомпилированную выходную публикацию инструментарий, требуемый ActiveJDBC, я пробовал:
Создание артефакта путем перехода в меню «Файл» > «Структура проекта», а затем вручную включение скомпилированного класса, включающего методы, добавленные с помощью инструментовки. Развертывание описанного выше артефакта приводит к следующей ошибке:
Исходный сервер не нашел текущего представления целевого
ресурса или не желает раскрывать его существование.
Когда вместо этого я использую выходные данные компиляции основного модуля, я могу получить доступ к приложению в браузере, но получаю ошибку 500 на страницах, где исходный код вызывает методы, доступные с инструментарием (задача после компиляции).
Мои вопросы: 1) Требуется ли для создания артефакта для развертывания использовать вывод компиляции основного модуля? 2) Как включить изменения фазы после компиляции в артефакт, если артефакт включает в себя компиляцию основного модуля как есть?