我有一个spring项目,它部署在Pentaho Data Integration的libext文件夹中,并从" User Defined Java Class"步。我得到一个java.lang.NoSuchMethodError: org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate.batchUpdate
项目依赖于org.springframework.spring-jdbc(版本4.1.7),它在NamedParameterJdbcTemplate中有batchUpdate方法。但是,Pentaho lib文件夹有spring-2.5.6 jar,它有org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate,它可能没有batchUpdate方法。如何解决这种依赖性冲突。我有Pentaho CE 5.3。提前谢谢。
答案 0 :(得分:0)
除了将jar文件放入/ libext之外,还需要修改/launcher/launcher.properties以在libext中查找用户定义的库。它将在下次重启Spoon时生效。
libraries=../test:../lib:../libswt:../libext
classpath=../:../ui:../ui/images:../lib:../libext
答案 1 :(得分:0)
在R& D之后,我发现这是使用的弹簧罐版本的问题。 Pentaho DI 5.3在spring2.5.6 jar中有org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate
类,它没有batchUpdate方法。我的项目是在spring 4上构建的,它在spring-jdbc jar中有batchUpdate方法。这导致依赖性差异,因此导致NoSuchMethodError
。我通过使用更新版本的Pentaho DI(版本6.1)来修复它,它在内部使用Spring 3并且没有这样的冲突罐。