Grails应用程序不会在tomcat中部署

时间:2015-09-22 12:53:29

标签: java spring maven tomcat grails

我将我的grails应用程序转换为maven项目。在我的pom.xml中,我有以下依赖

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>4.2.1.RELEASE</version>
</dependency>

我的应用程序以 grails run-app 开头,但是当我通过 maven compile install 构建war时,tomcat中的部署失败并出现以下错误

ERROR context.GrailsContextLoaderListener  - Error initializing Grails: class org.springframework.core.LocalVariableTableParameterNameDiscoverer$ParameterNameDiscoveringVisitor has interface org.springframework.asm.ClassVisitor as super class
java.lang.IncompatibleClassChangeError: class org.springframework.core.LocalVariableTableParameterNameDiscoverer$ParameterNameDiscoveringVisitor has interface org.springframework.asm.ClassVisitor as super class
    at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)

1 个答案:

答案 0 :(得分:0)

如果您的应用程序使用run-app运行,您应该能够使用grails war构建并以此方式部署而不是使用Maven。

https://grails.github.io/grails-doc/latest/ref/Command%20Line/war.html

  

默认情况下,war命令使用应用程序名称和版本号创建Web应用程序归档(WAR)文件。 war命令与大多数命令不同,因为它默认在生产环境中运行而不是开发,但是像任何脚本一样,环境可以使用标准约定来指定: