當我嘗試運行我的java
控制檯應用程序時,我在Red Hat 5
上看到以下錯誤,但在Ubuntu
上看到以下錯誤。運行Java應用程序時的NoSuchMethodError
另一個StackOverflow的post提到不要混用的spring
2和3
版本,但我跑find [where I run app - includes classpath] | grep spring | grep 3
,看到0的結果。因此,我相信這不是spring
版本問題。
> Exception in thread "main"
> org.springframework.beans.factory.parsing.BeanDefinitionParsingException:
> Configuration problem: Failed to import bean definitions from URL
> location
> [classpath:/org/eurekastreams/server/conf/applicationContext-model.xml]
> Offending resource: class path resource [conf/applicationContext.xml];
> nested exception is
> org.springframework.beans.factory.BeanDefinitionStoreException:
> Unexpected exception parsing XML document from class path resource
> [org/eurekastreams/server/conf/applicationContext-model.xml]; nested
> exception is java.lang.NoSuchMethodError:org.springframework.aop.config.
AopNamespaceUtils.registerAutoProxyCreatorIfNecessary
(Lorg/springframework/beans/factory/xml/ParserContext;
Lorg/w3c/dom/Element;)V
編輯
增加堆棧跟蹤:
Caused by: java.lang.NoSuchMethodError: org.springframework.aop.config.AopNamespaceUtils.registerAutoProxyCreatorIfNecessary(Lorg/springframework/beans/factory/xml/ParserContext;Lorg/w3c/dom/Element;)V
運行mvn dependency:tree
後,我看到的spring-aop.jar
幾個版本:
$grep "spring-aop" mvn_dependency_tree.txt
[INFO] | +- org.springframework:spring-aop:jar:2.0.8:compile
[INFO] | | | +- org.springframework:spring-aop:jar:2.0.8:provided
[INFO] | | +- org.springframework:spring-aop:jar:2.0.8:compile
[INFO] | | +- org.springframework:spring-aop:jar:2.5.4:compile
這些不同版本的spring-aop
可能會解釋我添加的堆棧跟蹤中的AOP
錯誤?
我懷疑你的問題還是在類路徑中的多個版本的春天,只是也許不是版本2和3 – JamesB
約定外,看起來你很可能有版本衝突。除此之外,您不提供足夠的信息來提供任何輸入。 –
嗯。如果我在同一個目錄下運行應用程序,在Ubuntu和RHEL上運行'$ CLASSPATH',那麼這個錯誤怎麼會發生在一個目錄中,而不是另一個呢? –