2017-09-12 9 views
0

grails 프로젝트를 grails 1.1.1에서 grails 1.2.1로 업그레이드하려고합니다. 내가 오류 메시지가 아래에 무엇입니까 내 응용 프로그램을 실행하려고 할 때 :upgarding grails 1.1.1 to 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 기본 그루비 컴파일러 2.3을 사용하고 있습니다. 그루비 컴파일러를 바꿔야합니까?

내가 구글에서 검색 한하지만 난 이해하지 못했다 : 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. 

내가 .grails에서 중복 서블릿 이름을 발견했다/***/자원/web.xml 파일을 실행 응용 프로그램을 실행하는 동안 GGTS의 명령.

<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> 

나는 왜 이것이 중복 서블릿 이름을 어떻게 생성하는지 알고 있으며 어떻게 해결할 수 있습니까?

+0

Google 검색 결과 : http://blog.proxerd.pl/article/how-to -fix-incompatibleclassrorror-for-groovy-projects-running-on-jdk7 –

+0

방금 ​​타임머신을 발명했습니다! – injecteer

+0

죄송합니다. 자바 버전을 1.6으로 변경하려고 시도했을 때 –

답변

0

블로그에 따르면 Exception 클래스 또는 그 하위 클래스를 확장하는 모든 클래스를 검색하여 Groovy에서 Java 클래스로 변환해야한다고합니다. 그러나 코드처럼 보이지는 않지만 내부 Grails 코드는 예외를 throw합니다.

이전 질문을 보면, 최종 목표는 Java 7 환경에서 전쟁을 실행 가능하게 만드는 것입니다. 자바 7에서 실행되는 Grails 버전을 사용할 때까지는 업그레이드 일정에 따라 Java 6을 사용해야합니다. 성공적인 업그레이드가 완료되면 Java 6으로 프로젝트를 컴파일하고 Java에서 실행되는 서블릿 컨테이너에서 실행 해보십시오 7. 아마 운이 좋았을 뿐이며 작동합니다.

저는 이것이 마지막 문제가 아닐 것이라고 확신합니다. 프로젝트에 몇 줄의 코드가 있는지 모릅니다. 전체 프로젝트를 grails 3에서 다시 구현하는 옵션 일 수 있습니다.

+0

을 얻지 못했습니다. "지원되지 않는 메이저. 부 버전 51.0"아래에 있습니다. 시스템 변수와 GGTS 속성 모두에서 컴파일러를 1.7에서 1.6으로 변경했습니다. 한 가지 이상한 점은 tomcat 버전 2.1.1을 1.2.1로 변경 한 후 "발생 원인 : java.lang.IllegalArgumentException : addChild : 자식 이름 'grails-errorhandler'가 고유하지 않음"입니다. .grails 폴더에있는 web.xml 파일을 검사하고 같은 이름의 'grails-errorhandler'라는 두 개의 서블릿을 찾았습니다. 왜 응용 프로그램을 실행하는 동안 중복을 생성하고 어떻게 해결할 수 있습니까? –

+0

그것은 업그레이드의 고통입니다. 나는 1.2에 대한 업그레이드 경험이있는 나이가 아니다. :). 내가 드릴 수있는 몇 가지 힌트 : 오류가 유선이되면'grails clean'을 시도해보십시오. 때로는 삭제하거나 더 나은 백업 캐시 디렉토리를 필요했습니다. 업그레이드 참고 사항 http://docs.grails.org/1.3.9/guide/2.%20Getting%20Started.html#2.2%20Upgrading%20from%20previous%20versions%20of%20Grails을 읽고 따라주세요. 새 Grails 버전으로 새 Grails 프로젝트를 만들고 application.properties, Config.groovy 및 BuildConfig.groovy 설정을 비교합니다. 'grails upgrade'를 시도하십시오. – andi

+0

이전 질문의 내용을 다음 질문으로 편집하지 마십시오. 나는이 질문이 2017 년 누구에게나 도움이 될 것이라고 생각하지 않지만, 새로운 질문과 동일한 문제를 가진 사람은 이전 주제에 대한 대답과의 관계를 보지 않을 것입니다. 어쨌든 나는 틀렸다.오류의 원인은 Tomcat 플러그인의 버전이 Grails의 버전과 같지 않다는 것입니다. 이전 Grails 릴리즈에서 그렇게 작동한다는 사실을 잊어 버렸습니다. – andi