Обновление Grails до 1.3.7, нужна помощь в устранении неполадок - PullRequest
2 голосов
/ 20 октября 2011

Я пытаюсь обновить приложение Grails с 1.0.3 до 1.3.7.

Я создал проект Grails 1.3.7 и приложил все усилия, чтобы скопировать старые классы идругие файлы нового проекта.Конечно, что-то пошло не так:

$ grails run-app
<--snip-->
Running Grails application..
2011-10-20 13:37:47,195 [main] ERROR context.GrailsContextLoader  - Error executing bootstraps: 
Error creating bean with name 'grailsApplication' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: 
Initialization of bean failed; nested exception is java.lang.reflect.MalformedParameterizedTypeException
    org.springframework.beans.factory.BeanCreationException: 
Error creating bean with name 'grailsApplication' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: 
Initialization of bean failed; nested exception is java.lang.reflect.MalformedParameterizedTypeException
    at java.security.AccessController.doPrivileged(Native Method)
    at org.grails.tomcat.TomcatServer.start(TomcatServer.groovy:212)
    at grails.web.container.EmbeddableServer$start.call(Unknown Source)
    at _GrailsRun_groovy$_run_closure5_closure12.doCall(_GrailsRun_groovy:158)
    at _GrailsRun_groovy$_run_closure5_closure12.doCall(_GrailsRun_groovy)
    at _GrailsSettings_groovy$_run_closure10.doCall(_GrailsSettings_groovy:280)
    at _GrailsSettings_groovy$_run_closure10.call(_GrailsSettings_groovy)
    at _GrailsRun_groovy$_run_closure5.doCall(_GrailsRun_groovy:149)
    at _GrailsRun_groovy$_run_closure5.call(_GrailsRun_groovy)
    at _GrailsRun_groovy.runInline(_GrailsRun_groovy:116)
    at _GrailsRun_groovy.this$4$runInline(_GrailsRun_groovy)
    at _GrailsRun_groovy$_run_closure1.doCall(_GrailsRun_groovy:59)
    at RunApp$_run_closure1.doCall(RunApp.groovy:33)
    at gant.Gant$_dispatch_closure5.doCall(Gant.groovy:381)
    at gant.Gant$_dispatch_closure7.doCall(Gant.groovy:415)
    at gant.Gant$_dispatch_closure7.doCall(Gant.groovy)
    at gant.Gant.withBuildListeners(Gant.groovy:427)
    at gant.Gant.this$2$withBuildListeners(Gant.groovy)
    at gant.Gant$this$2$withBuildListeners.callCurrent(Unknown Source)
    at gant.Gant.dispatch(Gant.groovy:415)
    at gant.Gant.this$2$dispatch(Gant.groovy)
    at gant.Gant.invokeMethod(Gant.groovy)
    at gant.Gant.executeTargets(Gant.groovy:590)
    at gant.Gant.executeTargets(Gant.groovy:589)
Caused by: java.lang.reflect.MalformedParameterizedTypeException
    at java.lang.Class.getGenericInterfaces(Class.java:788)
    ... 24 more

Если вы посмотрите эту трассировку стека, вы не найдете ссылок на код моего приложения, из-за которого мне сложно отследить.

Мне нужны некоторые предложения о том, что я мог бы проверить, может ли эта ошибка.Вот мой applicationContext.xml, который вряд ли является проблемой:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
  <bean id="grailsApplication" class="org.codehaus.groovy.grails.commons.GrailsApplicationFactoryBean">
    <description>Grails application factory bean</description>
    <property name="grailsDescriptor" value="/WEB-INF/grails.xml" />
    <property name="grailsResourceLoader" ref="grailsResourceLoader" />
  </bean>

  <bean id="pluginManager" class="org.codehaus.groovy.grails.plugins.GrailsPluginManagerFactoryBean">
  <description>A bean that manages Grails plugins</description>
    <property name="grailsDescriptor" value="/WEB-INF/grails.xml" />
    <property name="application" ref="grailsApplication" />
  </bean>

  <bean id="grailsConfigurator" class="org.codehaus.groovy.grails.commons.spring.GrailsRuntimeConfigurator">
    <constructor-arg>
      <ref bean="grailsApplication" />
    </constructor-arg>
  <property name="pluginManager" ref="pluginManager" />
  </bean>

  <bean id="grailsResourceLoader" class="org.codehaus.groovy.grails.commons.GrailsResourceLoaderFactoryBean">
    <property name="grailsResourceHolder" ref="grailsResourceHolder" />
  </bean>

  <bean id="grailsResourceHolder" scope="prototype" class="org.codehaus.groovy.grails.commons.spring.GrailsResourceHolder">
    <property name="resources">
      <value>classpath*:**/grails-app/**/*.groovy</value>
    </property>
  </bean>    

  <bean id="characterEncodingFilter"
  class="org.springframework.web.filter.CharacterEncodingFilter">
    <property name="encoding">
      <value>utf-8</value>
    </property>
  </bean>       
</beans>

Помощь очень ценится, и просто дайте мне знать, если требуется дополнительная информация.

Ответы [ 2 ]

1 голос
/ 21 октября 2011

Из заметок, которые я сделал, когда обновил проект с Grails 1.0.3 до 1.3.7 (не все эти шаги могут быть необходимы):

  • Убедитесь, что ваш источник проекта находится в пакетах (то есть, "com.companyname.projectname", а не в пакете по умолчанию)
  • Убедитесь, что источник плагина также находится в пакетах (т. Е. "Org.grails.pluginname", а не в пакете по умолчанию)
  • Удалить hibernate.jar из каталога проекта \ lib (hibernate теперь является плагином)
  • Если для GRAILS_HOME задана новая версия, создайте фиктивный проект и скопируйте новый BuildConfig.groovy в проект для обновления
  • Запустите «grails upgrade» и ответьте «y» на запросы
0 голосов
/ 21 октября 2011

Загляните в stacktrace.log, он, возможно, поможет вам лучше понять реальную проблему. Также попробуйте "grails clean" и "grails compile" перед "grails run-app", чтобы увидеть, если это проблема со старым мусором.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...