#java #spring #amazon-web-services #tomcat #docker
#java #spring #amazon-веб-сервисы #tomcat #docker
Вопрос:
Уважаемые мастера Java и Docker,
Сталкивались ли вы с проблемой, которая вырывает ваши волосы? Попробуйте это:
У меня есть веб-приложение Java Spring Hibernate, которое может успешно запускаться на моем локальном компьютере, который создается через Gradle. ОНО скомпилировано с использованием Oracle JDK 1.8.0_101. Оно работает под управлением Tomcat 7.0.72 (а tomcat запускается открытым на JDK 1.8.0_102). Он отлично справляется с войной. Почему у меня такая разная версия jdk? потому что я хочу имитировать сервер разработки ниже.
Мой сервер разработки — это докер под управлением aws ecs, только с одним образом контейнера. И в этом образе контейнера используется база изображений tomcat: 7.0.72-jre8. То же самое приложение war, которое запущено внутри контейнера, выдает следующую ошибку:
Ошибка при создании компонента с именем ‘agencyRepository’: не удалось вызвать метод инициализации; вложенное исключение — java.lang.Исключение IllegalArgumentException: не управляемый тип: класс com.mnetmobile.data.entities.Агентство
Я перетаскиваю этот файл war и запускаю на своем локальном, и он работает как чемпион. Все версии JDK одинаковы, версия tomcat одинакова. единственное, что отличается, это ноутбук с Windows 7 от ubuntu linux и запускает docker. (Все пути отличаются от N / A, потому что есть все относительные пути)
Есть идеи, какое отверстие я мог пропустить?
Комментарии:
1. Вы запускаете war локально и на aws с одним и тем же профилем spring или используете разные профили?
2. Кроме того, есть ли какие-либо различия в конфигурации Tomcat — разные файлы jar в папке Tomcat lib, различия в server.xml или context.xml файлы?
3. ЭТО стандартный Tomcat, и я еще не трогал папку lib. и я просто проверяю две папки, да, это одна и та же библиотека.
4. @Issam когда вы говорите spring profile, могу ли я предположить, что это конфигурация spring? я использую Spring 3 и аннотации полностью, без XML.
5. @Дэвид Миллер, ты был прав! была другая конфигурация, которую я пропустил даже после использования Beyond Compare. Я приму ваш ответ, если вы его опубликуете.
Ответ №1:
Каким-то образом должна быть какая-то разница в конфигурации двух серверов Tomcat. Поскольку версия Java, версия Tomcat и файл war одинаковы; должно быть какое-то различие в конфигурации Tomcat, либо в папке Tomcat lib, либо в context.xml или server.xml или еще куда-нибудь.
Комментарии:
1. Действительно, в моем файле application.properties есть путь. различия составляли всего 2 символа, и на этот раз избирательное зрение моего глаза подвело меня. Спасибо, Дэвид!