2014-10-02 41 views
0

我想调试一个Java/Maven项目与很多依赖各种库。 当我在Linux服务器上运行的程序精细启动,但是当我尝试在Eclipse中运行它,它会引发以下异常:NoSuchMethodError与骆驼RouteDefinition类

Exception in thread "main" java.lang.NoSuchMethodError: org.apache.camel.model.RouteDefinition.getErrorHandlerBuilder()Lorg/apache/camel/ErrorHandlerFactory; 
at org.apache.camel.spring.spi.SpringTransactionPolicy.wrap(SpringTransactionPolicy.java:69) 
at org.apache.camel.model.PolicyDefinition.createProcessor(PolicyDefinition.java:133) 
at org.apache.camel.model.ProcessorDefinition.makeProcessor(ProcessorDefinition.java:437) 
at org.apache.camel.model.ProcessorDefinition.addRoutes(ProcessorDefinition.java:183) 
at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:817) 
at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:165) 
at org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelContext.java:697) 
at org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:1654) 
at org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:1441) 
at org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:1338) 
at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:67) 
at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:54) 
at org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:1316) 

现在,我可以看到RouteDefinition类是骆驼-core-2.9.3,jar和我可以看到这个库被导入。那么它怎么会没有看到这种方法呢?

我该如何去调试呢?

我可以从运行在Linux服务器上的进程获取信息吗?例如,我可以获取导入的罐子的列表以及它们的导入顺序吗?

非常感谢!

+0

此库是直接依赖项还是二手的?如果你看你的本地回购是2.9.3唯一的副本? – Floegipoky 2014-10-02 14:21:54

+0

我猜想二手货。它不在我的项目的pom.xml中,但它是从其他项目继承的。在Eclipse Maven依赖关系中,我只有2.9.3,但是如果我查看磁盘上的Maven存储库,我有许多其他版本(2.8.2,2.9.5等) – Gep 2014-10-02 14:36:29

+0

尝试添加正确版本作为直接依赖项在你的朋友,如果你还没有 – Floegipoky 2014-10-02 14:41:53

回答

1

你得到的错误是由Maven拉错版本引起的。尝试删除当地回购的所有版本,将其明确添加到您的pom中,清理所有版本,向日食神祈祷等等。如果它仍然给出错误,请检查您的本地回购以查看哪些版本错误拉进来,弄清楚什么取决于他们,并为他们添加明确的忽略,同时保持明确的包括。