将Spring应用程序部署到JBoss时出错 - NoSuchMethodError
问题描述:
我创建了一个Spring web应用程序,该应用程序正在使用tomcat和CloudFoundry,但是在尝试在JBoss(OpenShift express)上启动应用程序时出现错误。将Spring应用程序部署到JBoss时出错 - NoSuchMethodError
在启动我得到以下错误:
2012/04/10 11:11:58,967 ERROR [org.springframework.web.context.ContextLoader] (MSC service thread 1-1) Context initialization failed: org.springframework.beans.BeanInstantiationException:
Could not instantiate bean class [org.springframework.web.context.support.XmlWebApplicationContext]: Constructor threw exception; nested exception is java.lang.NoSuchMethodError:
org.springframework.core.convert.converter.ConverterRegistry.addConverter(Ljava/lang/Class;Ljava/lang/Class;Lorg/springframework/core/convert/converter/Converter;)V
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:162) [spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:104) [spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at java.lang.Thread.run(Thread.java:679) [rt.jar:1.6.0_22]
Caused by: java.lang.NoSuchMethodError: org.springframework.core.convert.converter.ConverterRegistry.addConverter(Ljava/lang/Class;Ljava/lang/Class;Lorg/springframework/core/convert/converter/Converter;)V
at org.springframework.core.convert.support.DefaultConversionService.addScalarConverters(DefaultConversionService.java:62) [org.springframework.core-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.core.convert.support.DefaultConversionService.addDefaultConverters(DefaultConversionService.java:53) [org.springframework.core-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.core.convert.support.DefaultConversionService.<init>(DefaultConversionService.java:42) [org.springframework.core-3.1.1.RELEASE.jar:3.1.1.RELEASE]
... 12 more
我以为这是一个JAR冲突/ dupplication去检查依赖性冲突maven的设置,但是,在检查的传递依赖在Eclipse的Maven依赖层次结构,我definetly exlcuding所有版本3.1.1除外(这类问题在V3.0中引入我相信) - 这既是Spring-core
和org.springframework.core
)
任何人有任何想法我可能会丢失?
答
好的,我发现了这个问题。我已经排除了spring-core
依赖关系(这已经排除了从它是传递依赖关系的每个依赖关系库),我认为这将是好的,因为我正在使用org.springframework.core
库,而不是。但是,它看起来只是将它们排除在第一级传递依赖关系之外,而且在我构建的WAR文件中,它仍在下拉spring-core.3.0.3
(我之前没做过,因为我正在部署到Redhat的OpenShift平台,并且它花了一些工作设置的东西,所以我可以scp到服务器以获得构建的战争)
我现在通过明确声明依赖于spring-core.3.1.1
并排除所有其他人以确保最新获取下。
我想道德是不相信M2Eclipse插件中的“已解决的依赖性”视图为正在使用的库的视图。