grails 1.1.1至1.2.1

时间:2017-09-12 12:59:48

标签: grails grails-plugin

我正在尝试将grails项目从grails 1.1.1升级到grails 1.2.1。 当我尝试运行我的应用程序时,我收到以下错误消息:

 I am using java 1.7._09 and GGTS 3.6.4.

这是我的application.properties文件:

    when I am trying to add tomcat 1.2.1 in my application.properties file I am getting below error:

我的GGTS正在使用默认的groovy编译器2.3。我是否需要更改groovy编译器?

我在谷歌搜索过,但我不明白: search result from google

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:266)
    at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:51)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:44)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:143)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:155)
    at gant.Gant.processTargets(Gant.groovy:480)
    at org.codehaus.groovy.grails.cli.GrailsScriptRunner.callPluginOrGrailsScript(GrailsScriptRunner.java:485)
    at org.codehaus.groovy.grails.cli.GrailsScriptRunner.executeCommand(GrailsScriptRunner.java:301)
    at org.codehaus.groovy.grails.cli.GrailsScriptRunner.main(GrailsScriptRunner.java:115)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.codehaus.groovy.grails.cli.support.GrailsStarter.rootLoader(GrailsStarter.java:215)
    at org.codehaus.groovy.grails.cli.support.GrailsStarter.main(GrailsStarter.java:240)
Caused by: java.lang.IllegalArgumentException: addChild:  Child name 'grails-errorhandler' is not unique
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:781)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
    at org.apache.catalina.core.StandardContext.addChild(StandardContext.java:2128)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.apache.tomcat.util.IntrospectionUtils.callMethod1(IntrospectionUtils.java:925)
    at org.apache.tomcat.util.digester.SetNextRule.end(SetNextRule.java:193)
    at org.apache.tomcat.util.digester.Rule.end(Rule.java:229)
    at org.apache.tomcat.util.digester.Digester.endElement(Digester.java:1140)
    ... 438 more
startup.ContextConfig Occurred at line 7 column 422
startup.ContextConfig Marking this application unavailable due to previous error(s)
core.StandardContext Error getConfigured
core.StandardContext Context [/BASF_bdw] startup failed due to previous errors
Server running. Browse to http://localhost:8080/BASF_bdw
plugins.DefaultGrailsPluginManager Started to scan for plugin changes in every 5000ms.

我在GGTS中运行run-app命令时在.grails / *** / resource / web.xml中找到了重复的servlet名称。

<servlet>
<servlet-name>grails-errorhandler</servlet-name>
<servlet-class>org.codehaus.groovy.grails.web.servlet.ErrorHandlingServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>grails-errorhandler</servlet-name>
<servlet-class>org.codehaus.groovy.grails.web.servlet.ErrorHandlingServlet</servlet-class>
</servlet>

我可能知道为什么它会生成重复的servlet名称以及如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

博客说你应该搜索扩展了Exception类或它的子类的每个类,并将它从groovy转换为java类。但是,看起来它不是您的代码,而是抛出异常的内部Grails代码。

看看你之前的问题,似乎你的最终目标是让你的战争在Java 7环境中运行。 你应该在升级之旅中坚持使用java 6,直到你遇到只在Java 7上运行的Grails版本。 每次成功升级后,使用Java 6编译项目并尝试在运行Java 7的servlet容器中运行它。也许你很幸运,它只是工作。

我很确定这不会是最后一个问题。 我不知道你的项目有多少行代码,也许它可以选择在grails 3中重新实现整个项目。