2011-08-30 10 views
6

Bir nesneyi serileştirip serpmek ve yay bağımlılıklarına otomatik enjeksiyon yapmak için Grails projesinde yük süresi dokumasını kullanmaya çalışıyorum. Bazı aramalardan sonra bir easy example buldum ve beklendiği gibi çalışıyor. Ancak aynı konfigürasyonu basit bir Grails projesine uyguladıktan sonra çok fazla hata alıyorum. Örneğin:Gravürlerde yükleme süresi dokuması

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

Bunu sınamak için yeni bir grails proje oluşturduktan ve applicationContext.xml değiştirdi:

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

: Ben de yeni bir fasulye yarattı Bu dosyada

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

Bu, Person sınıfı için bir prototip tanımlar ve Timon değerini name özelliğine enjekte eder.

Bunu grails war kullanarak bir savaş olarak paketleyip bunu bir tomcat sunucusunda dağıtıyorum. Bu tomcat, lib dizininde org.springframework.instrument.tomcat-3.0.5.RELEASE.jar'a sahiptir ve dağıtımdan sonra, yukarıda bahsettiğim hataların büyük bir listesini görüyorum.

Yükleme süresi dokumasını Grails'de yapılandıran oldu mu?

+0

Yukarıda belirtilen örneği izlediğimde ve bunu aynı tomcatte dağıttığımda, örnek çalışmayı görebilirim ve dokuma iyi çalışıyor gibi görünüyor. Dokümanın gerçekleşmesini engelleyen özel bir şey var mı? – sterym

+0

Hangi Grails sürümünü kullanıyorsunuz? –

+0

Grails 1.3.7 kullanıyorum – sterym

cevap

0

Neden mülkünüzü metaclass ile enjekte etmiyorsunuz?

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