有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在Grails Spring数据应用程序中混合java和groovy代码时出错

我想创建一个带有大量java源文件的Grails应用程序。这些java文件让我能够通过spring-data-Neo4J访问嵌入式Neo4J图形

(我会改用Grails Neo4J GORM插件,但事实上它在Grails 2.3.5以上的版本中不起作用——我使用的是2.4.3——即使在使用2.3.5时,开发人员提供的示例应用程序在运行时也会出错)

我想创建一系列表示图中存在的节点的java类,spring-data-neo4j将允许我在Grails中以POJO的形式访问这些类(如关于SOhere的第二个答案的第1点所述)。我以this Spring Data tutorial here为起点。我模仿了那个人。java和PersonRepository。java类到src/java。然后我运行“grails run app”-我不希望发生任何事情,只希望grails编译java源代码,然后正常启动(然后我将把Application.java中的一些代码导入到第三个java类中,以实际使用这些类)

但是,我得到以下错误和Grails崩溃:

context.ContextLoader Context initialization failed java.lang.NoSuchMethodError: org.springframework.expression.spel.SpelParserConfiguration.(Lorg/springframework/expression/spel/SpelCompilerMode;Ljava/lang/ClassLoader;)V at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) context.GrailsContextLoaderListener Error initializing the application: org.springframework.expression.spel.SpelParserConfiguration.(Lorg/springframework/expression/spel/SpelCompilerMode;Ljava/lang/ClassLoader;)V java.lang.NoSuchMethodError: org.springframework.expression.spel.SpelParserConfiguration.(Lorg/springframework/expression/spel/SpelCompilerMode;Ljava/lang/ClassLoader;)V at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) | Error Forked Grails VM exited with error | Server running. Browse to http://localhost:8080/

如果我将java示例应用程序作为一个基本java程序运行(使用“gradle run”构建并运行它),那么它将按照广告的方式工作

为了让java代码在Grails spring数据应用程序中正确编译,我需要做些什么


共 (1) 个答案

  1. # 1 楼答案

    这似乎与依赖项的版本不匹配有关。示例代码使用Gradle spring启动插件来排序可传递的依赖项。但是,这不能在我的项目中使用,因为我使用的是gradle grails插件,它明确禁止使用Java或Groovy插件(spring boot插件需要Java插件)

    当我将这两个依赖项中的依赖项从4.1.1(最新版本,2014年11月6日)更改为4.0.6时,错误消失了:

    compile "org.springframework:spring-context:4.0.6.RELEASE"
    compile "org.springframework:spring-tx:4.0.6.RELEASE"