IDE является идея, загрузочный проект Spring есть META-INF/spring-devtools.properties
, содержаниеСпринг загрузки Devtools нагрузку в два раза класса и вызвать LinkageError
restart.include.dozer=/dozer-5.5.1.jar
при запуске проекта броска ниже исключения
2015-12-03 12:02:49,491 [restartedMain] INFO org.dozer.DozerBeanMapper - Initializing a new instance of dozer bean mapper.
2015-12-03 12:02:49,494 [restartedMain] WARN o.s.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dozerBeanMapper' defined in class path resource [com/foo/common/CommonConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.dozer.Mapper]: Factory method 'dozerBeanMapper' threw exception; nested exception is java.lang.LinkageError: loader constraint violation: loader (instance of org/springframework/boot/devtools/restart/classloader/RestartClassLoader) previously initiated loading for a different type with name "org/dozer/DozerBeanMapper"
2015-12-03 12:02:49,517 [restartedMain] ERROR org.springframework.boot.SpringApplication - Application startup failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dozerBeanMapper' defined in class path resource [com/foo/common/CommonConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.dozer.Mapper]: Factory method 'dozerBeanMapper' threw exception; nested exception is java.lang.LinkageError: loader constraint violation: loader (instance of org/springframework/boot/devtools/restart/classloader/RestartClassLoader) previously initiated loading for a different type with name "org/dozer/DozerBeanMapper"
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:599) ~[spring-beans-4.2.3.RELEASE.jar:4.2.3.RELEASE]
Что странно, при запуске проекта в Eclipse нет проблем. Добавить -XX:+TraceClassLoading
Конфигурация в идее, я обнаружил, что бульдозер загружается дважды.
9569 [Loaded org.dozer.DozerBeanMapper from file:/C:/Users/otto/.m2/repository/net/sf/dozer/dozer/5.5.1/dozer-5.5.1.jar]
9618 [Loaded org.dozer.DozerBeanMapper from file:/C:/Users/otto/.m2/repository/net/sf/dozer/dozer/5.5.1/dozer-5.5.1.jar]
Теперь я не знаю, как найти причину этой проблемы?
Можете ли вы поделиться небольшим образцом, который воспроизводит проблему? –
@ Энди Уилкинсон Привет, я создал образец минимализма - https: //gist.github.com/zhugw/63e98f99098156e8173a. Запустите FooAplication, вы можете сгенерировать эту ошибку. – zhuguowei
Не могли бы вы направить настоящий проект в Git repo где-нибудь? Я хотел бы быть уверенным, что я выполняю _exactly_ тот же самый код, что и вы, и собирать его вместе из gist означает, что это может быть не так. –