#spring-boot #websphere
Вопрос:
Я разработал очень простое загрузочное приложение Sring, создавшее файл war.При попытке запустить этот файл войны ibm websphere выдает ошибку.
Пожалуйста, найдите эту ошибку.
300=> com.ibm.ws.exception.RuntimeWarning:
com.ibm.ws.webcontainer.exception.WebAppNotLoadedException:
Failed to load webapp: Failed to load webapp: java.lang.LinkageError:
loading constraint violation when overriding method amp;amp;quotamp;#59;org/springframework/boot/ApplicationContextFactory.createamp;amp;#40amp;#59;Lorg/springframework/boot/WebApplicationTypeamp;amp;#59amp;#59;amp;amp;#41amp;#59;Lorg/springframework/context/ConfigurableApplicationContextamp;amp;#59amp;#59;amp;amp;quotamp;#59; during creation of class amp;amp;quotamp;#59;org/springframework/boot/ApplicationContextFactory$Lambda$603/000000006C9B6F80amp;amp;quotamp;#59;: loader amp;amp;quotamp;#59;java/lang/InternalAnonymousClassLoader@a99c89c1amp;amp;quotamp;#59; of class amp;amp;quotamp;#59;org/springframework/boot/ApplicationContextFactory$Lambda$603/000000006C9B6F80amp;amp;quotamp;#59; and loader amp;amp;quotamp;#59;com/ibm/ws/classloader/CompoundClassLoader@2d88f42eamp;amp;quotamp;#59; of class amp;amp;quotamp;#59;org/springframework/boot/ApplicationContextFactoryamp;amp;quotamp;#59; have different types for the method signature
301=> at com.ibm.ws.webcontainer.component.WebContainerImpl.install(WebContainerImpl.java:433)
301=> at com.ibm.ws.webcontainer.component.WebContainerImpl.start(WebContainerImpl.java:719)
301=> at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:1211)
301=> at com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectStart(DeployedApplicationImpl.java:1390)
301=> at com.ibm.ws.runtime.component.DeployedModuleImpl.start(DeployedModuleImpl.java:639)
301=> at com.ibm.ws.runtime.component.DeployedApplicationImpl.start(DeployedApplicationImpl.java:979)
301=> at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:795)
302=> at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplicationDynamically(ApplicationMgrImpl.java:1413)
302=> at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:2273)
302=> at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start(CompositionUnitMgrImpl.java:436)
302=> at com.ibm.ws.runtime.component.CompositionUnitImpl.start(CompositionUnitImpl.java:123)
302=> at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start(CompositionUnitMgrImpl.java:379)
302=> at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.access$500(CompositionUnitMgrImpl.java:127)
303=> at com.ibm.ws.runtime.component.CompositionUnitMgrImpl$1.run(CompositionUnitMgrImpl.java:654)
303=> at com.ibm.ws.security.auth.ContextManagerImpl.runAs(ContextManagerImpl.java:5554)
303=> at com.ibm.ws.security.auth.ContextManagerImpl.runAsSystem(ContextManagerImpl.java:5680)
303=> at com.ibm.ws.security.core.SecurityContext.runAsSystem(SecurityContext.java:255)
303=> at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.startCompositionUnit(CompositionUnitMgrImpl.java:668)
303=> at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.startCompositionUnit(CompositionUnitMgrImpl.java:612)
303=> at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:1303)
Ответ №1:
Пожалуйста, ознакомьтесь с политикой загрузки загрузчика классов в консоли приложений WebSphere.Измените политику загрузки классов для приложения
Комментарии:
1. Не могли бы вы предоставить пример базового приложения spring boot, которое можно развернуть в WebSphere. Если вы можете предоставить ссылку на репозиторий GitHub, это очень полезно, пожалуйста.
2. Любое приложение для весенней загрузки будет работать, Саджит. Вам нужно быть осторожным только в отношении определенных вещей, таких как зависимости от базы данных в проекте. Начните с очень простого приложения spring boot, используя только проект web starter. Поднимите его и запустите туда. Вам нужно просто убедиться в порядке загрузки класса.
3. Я попробовал использовать очень простую пружинную загрузку с инициализатора. Я пробовал несколько попыток, но бесполезно, у меня нет никакой зависимости от jdbc. Не могли бы вы предоставить пример репозитория GitHub.
4. Проблема не в приложении для весенней загрузки. После установки приложения на сервер вам нужно поиграть с параметрами загрузки классов и убедиться, что оно запускается правильно. По умолчанию это родительская стратегия загрузки первого класса, которую вам, возможно, придется изменить и отслеживать журналы запуска приложения