#java #spring #spring-boot #classloader #jboss6.x
#java #spring #spring-boot #загрузчик классов #jboss6.x
Вопрос:
Мы используем продукт artesia 3rd party для нашего проекта, и он развернут в JBOSS EAP6.4, я хочу использовать spring boot в нашем проекте, и когда я пишу примеры веб-сервисов REST, я могу получить доступ к веб-службе REST по URL.
Согласно документации нашего продукта, если нам нужно настроить проект, нам нужно написать нашу пользовательскую войну, указав ниже два файла JBOSS внутри папки META-INF
jboss-all.xml
<?xml version="1.0" encoding="UTF-8"?>
<jboss umlns="urn:jboss:1.0">
<jboss-deployment-dependencies xmlns="urn:jboss:deployment-dependencies:1.0">
<dependency name="artesia.ear" />
</jboss-deployment-dependencies>
</jboss>
итак, наша пользовательская логика должна начинаться после успешного запуска artesia.ear.
наш jboss-deployment-structure.xml
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<sub-deployment>
<dependencies>
<module name="deploy" />
</dependencies>
</sub-deployment>
</jboss-deployment-structure>
Приведенный выше модуль развертывания содержит все банки, необходимые для запуска проекта.
Когда я следую тому же и создаю war без spring, он прошел успешно, и проблем нет, мы можем использовать для настройки war.
Теперь я хочу сделать то же самое в приложении Spring-boot 1.4.1, где мое приложение spring boot должно запускаться после успешного запуска artesia.ear, и, кроме spring jars, мое приложение spring-boot должно использовать банки из module.xml .
Я разместил два вышеупомянутых XML-файла внутри META-INF приложения spring boot, но при развертывании в JBOSS EAP6.4 происходит сбой
Ниже приведена ошибка, которую я получаю jboss-server.log
Что мне нужно сделать, чтобы использовать то же самое для моего приложения spring-boot
РЕДАКТИРОВАТЬ 1:
Я попытался поместить оба файла jboss в папку WEB-INF приложения spring-boot, но все равно столкнулся с той же проблемой
Ответ №1:
Нам нужно убедиться, что папки META-INF и WEB-INF лежат рядом, вместо того, чтобы хранить папку META-INF внутри папки classes WEB-INF, в которой находится папка META-INF spring-boot по умолчанию.