9

我写了一个aspectj类,我想通过自动检测来编织

但它没有效果。显示一些错误:

[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving type org.apache.struts2.dispatcher.RequestMap
when weaving classes 
when weaving 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving type org.apache.struts2.dispatcher.SessionMap
when weaving classes 
when weaving 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving classes 
when weaving 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving type org.apache.struts2.util.AttributeMap
when weaving classes 
when weaving 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving type org.apache.commons.lang3.BooleanUtils
when weaving classes 
when weaving 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving type ognl.ASTChain
when weaving classes 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving type ognl.enhance.OrderedReturn
when weaving classes 
when weaving 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving type com.opensymphony.xwork2.util.reflection.ReflectionContextState
when weaving classes 
when weaving 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving type ognl.Evaluation
when weaving classes 
when weaving 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving type org.apache.struts2.dispatcher.mapper.ParameterAction
when weaving classes 
when weaving 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving classes 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving type org.apache.struts2.util.PrefixTrie$Node
when weaving classes 
when weaving 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving type org.apache.struts2.dispatcher.mapper.DefaultActionMapper$2$1
when weaving classes 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving type org.apache.struts2.dispatcher.mapper.DefaultActionMapper$2$2
when weaving classes 
when weaving 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving type org.apache.struts2.dispatcher.mapper.DefaultActionMapper$2$3
when weaving classes 
when weaving 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving type org.apache.struts2.dispatcher.mapper.DefaultActionMapper$2$4
when weaving classes 
when weaving 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving type org.apache.struts2.RequestUtils
when weaving classes 
when weaving 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving type com.opensymphony.xwork2.util.profiling.UtilTimerStack
when weaving classes 
when weaving 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving type com.opensymphony.xwork2.DefaultActionInvocation
when weaving classes 
when weaving 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving type com.opensymphony.xwork2.ActionEventListener
when weaving classes 
when weaving 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving type com.opensymphony.xwork2.UnknownHandler
when weaving classes 
when weaving 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving type org.apache.struts2.impl.StrutsActionProxy
when weaving classes 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving type com.opensymphony.xwork2.DefaultActionProxy
when weaving classes 
when weaving 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving type org.apache.commons.lang3.StringEscapeUtils
when weaving classes 
when weaving 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving type org.apache.commons.lang3.text.translate.CharSequenceTranslator
when weaving classes 
when weaving 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving type org.apache.commons.lang3.text.translate.AggregateTranslator
when weaving classes 
when weaving 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving type org.apache.commons.lang3.StringEscapeUtils$CsvEscaper
when weaving classes 
when weaving 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving type org.apache.commons.lang3.StringEscapeUtils$CsvUnescaper
when weaving classes 
when weaving 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving type org.apache.commons.lang3.text.translate.LookupTranslator
when weaving classes 
when weaving 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving type org.apache.commons.lang3.text.translate.EntityArrays
when weaving classes 
when weaving 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving type org.apache.commons.lang3.ArrayUtils
when weaving classes 
when weaving 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving type org.apache.commons.lang3.text.translate.UnicodeEscaper
when weaving classes 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving type org.apache.commons.lang3.text.translate.CodePointTranslator
when weaving classes 
when weaving 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving type org.apache.commons.lang3.text.translate.OctalUnescaper
when weaving classes 
when weaving 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving type org.apache.commons.lang3.text.translate.UnicodeUnescaper
when weaving classes 
when weaving 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving type org.apache.commons.lang3.text.translate.NumericEntityUnescaper
when weaving classes 
when weaving 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving type org.apache.commons.lang3.text.translate.NumericEntityUnescaper$OPTION
when weaving classes 
when weaving 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving classes 
when weaving 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving type org.apache.struts2.interceptor.ServletRequestAware
when weaving classes 
when weaving 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving type org.apache.struts2.interceptor.ServletResponseAware
when weaving classes 
when weaving 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving type org.apache.struts2.interceptor.ParameterAware
when weaving classes 
when weaving 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving type org.apache.struts2.interceptor.ApplicationAware
when weaving classes 
when weaving 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving type org.apache.struts2.interceptor.SessionAware
when weaving classes 
when weaving 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving type org.apache.struts2.interceptor.RequestAware
when weaving classes 
when weaving 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving type org.apache.struts2.interceptor.PrincipalAware
when weaving classes 
when weaving 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving type org.apache.struts2.util.ServletContextAware
when weaving classes 
when weaving 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving type com.opensymphony.xwork2.interceptor.MethodFilterInterceptorUtil
when weaving classes 
when weaving 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving type com.opensymphony.xwork2.Preparable
when weaving classes 
when weaving 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving type com.opensymphony.xwork2.interceptor.ScopedModelDriven
when weaving classes 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving type com.opensymphony.xwork2.ModelDriven
when weaving classes 
when weaving 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving type com.opensymphony.xwork2.config.entities.Parameterizable
when weaving classes 
when weaving 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving classes 
when weaving 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving type com.opensymphony.xwork2.interceptor.ParameterNameAware
when weaving classes 
when weaving 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving type org.apache.struts2.interceptor.validation.SkipValidation
when weaving classes 
when weaving 
 [Xlint:cantFindType]
[TomcatInstrumentableClassLoader@14d659d] error can't determine annotations of missing type org.springframework.transaction.annotation.Transactional
when weaving type com.opensymphony.xwork2.util.AnnotationUtils
when weaving classes 
when weaving 
 [Xlint:cantFindType]
4

2 回答 2

13

看来您正在尝试编织可能不应该编织的 3rd 方类。

您可能应该将编织限制在您的包裹中,META-INF/aop.xml如下所示:

<?xml version="1.0"?>

<!--
    AspectJ load-time weaving config file with Spring aspects.
-->
<aspectj>


    <weaver options="-showWeaveInfo">
        <include within="com.yourpackage..*"/>
    </weaver>


    <aspects>
        <aspect name="org.springframework.beans.factory.aspectj.AnnotationBeanConfigurerAspect"/>
        <aspect name="org.springframework.scheduling.aspectj.AnnotationAsyncExecutionAspect"/>
        <aspect name="org.springframework.transaction.aspectj.AnnotationTransactionAspect"/>
        <aspect name="org.springframework.cache.aspectj.AnnotationCacheAspect"/>
    </aspects>

</aspectj>

<include within="com.yourpackage..*"/>对您的包裹的限制在哪里。

于 2013-09-17T13:54:30.070 回答
2

pom.xml在您的文件中添加以下内容作为依赖项。

<dependencies>
     <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-tx</artifactId>
         <version>3.2.3.RELEASE</version>
     </dependency>
</dependencies>
于 2013-10-15T16:20:00.830 回答