Я пытаюсь использовать время загрузки в проекте Grails, чтобы иметь возможность сериализовать и десериализовать объект и автоматически внедрять зависимости пружин. После некоторых поисков я нашел простой пример , и это, кажется, работает как ожидалось. Но после применения той же конфигурации к простому проекту Grails я получаю много ошибок. Например:
[TomcatInstrumentableClassLoader@413a2870] 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
Чтобы проверить это, я создал новый проект grails и изменил 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"/>
В этом файле я также создал новый бин:
<bean class="be.testweaving.Person" scope="prototype">
<property name="name" value="Timon"/>
</bean>
Это определяет прототип для класса Person
и вставляет значение Timon
в свойство name
.
Я упаковываю это как войну, используя grails war
, и развертываю это на сервере Tomcat. У этого кота есть org.springframework.instrument.tomcat-3.0.5.RELEASE.jar
в его каталоге lib, и после развертывания я вижу огромный список ошибок, о которых я упоминал выше.
Кто-нибудь смог настроить ткачество времени загрузки в Grails?