为了从外部jar文件(位于WEB-INF/lib中)编织一个类,我正在尝试使用我的Tomcat 7 webapp来编写加载时间编织。
我做了以下工作:
-javaagent:/path/aspectjweaver-1.7.0.jar -classpath /path/aspectjrt-1.7.0.jar:etcaop.xml放入WAR_ROOT/META-INF/, WEB-INF/lib/META_INF, WEB-INF/lib and WEB-INF/aop.xml:
<aspectj>
<aspects>
<aspect name="ca.gc.agr.agrishare.web.jsf.chartlet.AgriShareGanttRendererAspect"/>
</aspects>
<weaver options="-verbose -debug -XnoInline">
<include within="org.jfree..*"/>
<dump within="org.jfree..*" />
</weaver>
</aspectj>不管我把文件放在哪里,我的目标类都没有编成,我经常看到这样的错误:
[WebappClassLoader@495b317b] error can't determine implemented interfaces of missing type javax.validation.ValidatorFactory
when weaving type org.hibernate.cfg.beanvalidation.TypeSafeActivator
when weaving classes
when weaving
[Xlint:cantFindType]事实上,它试图在我指定的包之外编织一个类,并且考虑到服务器启动时间翻两番,我认为它正在尝试编织所有类。
我遗漏了什么?
发布于 2014-01-25 05:47:10
弄明白了。
WAR_ROOT/META-INF/是servletContext.getResource("/META-INF/bla")查找的webapp元数据。
WAR_ROOT/WEB-INF/classes/META-INF是getContextClassLoader().getResource("/META-INF/bla")查找的java类元数据。
我在Config项目(它位于类路径上)中创建了META-INF/aop.xml,现在一切都正常工作。
https://stackoverflow.com/questions/21346559
复制相似问题