2011-08-30 9 views
6

Sto cercando di utilizzare il tempo di caricamento che si intesse in un progetto Grails per poter serializzare e deserializzare un oggetto e avere l'iniezione automatica delle dipendenze della molla. Dopo alcune ricerche ho trovato un easy example e sembra funzionare come previsto. Ma dopo aver applicato la stessa configurazione ad un semplice progetto di Grails ho molti errori. Per esempio:Tempo di caricamento tessitura in grails

[[email protected]] error at org/springframework/web/servlet/theme/AbstractThemeResolver.java::0 class 'org.springframework.web.servlet.theme.AbstractThemeResolver' is already woven and has not been built in reweavable mode 

Per provare questo ho creato un nuovo progetto graal e cambiato l'applicationContext.xml:

<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd 
    http://www.springframework.org/schema/context 
    http://www.springframework.org/schema/context/spring-context.xsd"> 

<context:spring-configured /> 
<context:load-time-weaver aspectj-weaving="autodetect" weaver-class="org.springframework.instrument.classloading.ReflectiveLoadTimeWeaver"/> 

In questo file Ho anche creato un nuovo bean:

<bean class="be.testweaving.Person" scope="prototype"> 
    <property name="name" value="Timon"/> 
</bean> 

Definisce un prototipo per la classe Person e inserisce il valore Timon nella proprietà name.

Imballaggio questo come una guerra utilizzando grails war e distribuirlo su un server tomcat. Questo tomcat ha il org.springframework.instrument.tomcat-3.0.5.RELEASE.jar nella sua directory lib e dopo la distribuzione vedo una lista enorme degli errori che ho citato sopra.

Qualcuno è stato in grado di configurare il tempo di caricamento della tessitura in Grails?

+0

Quando seguo l'esempio sopra menzionato e distribuire questo nello stesso gatto, posso vedere l'esempio di lavoro e la tessitura sembra funzionare bene. Qualcuno potrebbe dirmi se c'è qualcosa di specifico dei graal che impedisce la tessitura? – sterym

+0

Quale versione di Grails stai usando? –

+0

Sto usando Grails 1.3.7 – sterym

risposta

0

Perché non immetti la tua proprietà tramite metaclass?

class ExampleBootStrap { 
def init = { servletContext -> 
    Person.metaClass.constructor = { 
     def person = BeanUtils.instantiateClass(Person) 
     person.name = "Timon" 
     person 
    } 
} 
} 
Problemi correlati