2011-08-30 7 views
6

Estoy intentando utilizar el tiempo de carga tejiendo en un proyecto de Grails para poder serializar y deserializar un objeto y tener inyección automática de dependencias de resorte. Después de buscar, encontré un easy example y parece que funciona como se esperaba. Pero después de aplicar la misma configuración a un proyecto simple de Grails, recibo muchos errores. Por ejemplo:Cargar tiempo tejiendo en 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 

Para probar esto he creado un nuevo proyecto griales y cambió el 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"/> 

En este archivo también he creado un nuevo bean:

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

Esto define un prototipo para la clase Person e inyecta el valor Timon en la propiedad name.

Empaqueto esto como una guerra usando grails war e implemento esto en un servidor tomcat. Este tomcat tiene el org.springframework.instrument.tomcat-3.0.5.RELEASE.jar en su directorio lib y después de la implementación veo una enorme lista de los errores que mencioné anteriormente.

¿Alguien ha sido capaz de configurar el tiempo de carga de tejer en Grails?

+0

Cuando sigo el ejemplo mencionado anteriormente y despliego esto en el mismo tomcat, puedo ver el ejemplo funcionando y el tejido parece funcionar bien. ¿Alguien podría decirme si hay algo específico de Grails que impida que se produzca el tejido? – sterym

+0

¿Qué versión de Grails estás usando? –

+0

Estoy usando Grails 1.3.7 – sterym

Respuesta

0

¿Por qué no solo inyectas tu propiedad a través de metaclase?

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