1

プロジェクトをAspectjでコンパイルできません。 Apache CXFには、ResourceContext.getResource(SomeClass.class)がSpringで管理されていない単純なオブジェクトを作成するという問題があります。だから私は織りと@Configurableこの苦難を乗り越えるために使用したいと思います。私はテスト用のSpringブートアプリケーション(必要に応じてGithubにリンクを提供することができます)を@Configurable@EnableSpringConfiguredを使って以下のように設定しました。Spring @Configurableアノテーションwith AspectJ

ここで私のpom.xmlのスナップショットです4.3.3.RELEASE)は次のとおりです。

<dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-aspects</artifactId> 
    <version>${spring.version}</version> 
</dependency> 
<dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-tx</artifactId> 
    <version>${spring.version}</version> 
</dependency> 

aspectj-maven-pluginプラグイン設定:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>aspectj-maven-plugin</artifactId> 
    <version>1.8</version> 
    <configuration> 
     <source>1.8</source> 
     <target>1.8</target> 
     <complianceLevel>1.8</complianceLevel> 
     <showWeaveInfo>true</showWeaveInfo> 
     <aspectLibraries> 
      <aspectLibrary> 
       <groupId>org.springframework</groupId> 
       <artifactId>spring-aspects</artifactId> 
      </aspectLibrary> 
     </aspectLibraries> 
    </configuration> 
    <executions> 
     <execution> 
      <goals> 
       <goal>compile</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 

しかし、私は私の会社では、実際のプロジェクトでは、上記の構成を適用しようとすると、私はこの奇妙なエラーが出ます:

[ERROR] *path to the java file being weaving* can't determine annotations of missing type javax.transaction.Transactional 
[ERROR] when weaving type *the full java class name* 
[ERROR] when weaving classes 
[ERROR] when weaving 
[ERROR] when batch building BuildConfig[null] #Files=27 AopXmls=#0 
[ERROR] [Xlint:cantFindType] 
[ERROR] error at (no source information available) 

私のテストプロジェクトは@Transactionalを使用していませんが、実際のプロジェクトでは行いません。だから私はspring-txpersistence-apiの依存関係を追加しようとしましたが、何も動作しません。そして最後の注記:プロジェクトはmvn installを2回目に実行し成功し、mvn clean installを実行するたびに失敗しました。

私は本当にこのエラーに固執しているので、どんな助力も非常に感謝しています。

答えて

2

クラスパスに次の依存関係を追加すると、問題を解決する必要があります。

<dependency> 
    <groupId>javax.transaction</groupId> 
    <artifactId>javax.transaction-api</artifactId> 
    <version>1.2</version> 
    <scope>provided</scope> 
</dependency> 
+0

おかげで、スタースを!それは本当に現在の問題を解決しました。今私はプロジェクトをビルドすることができますが、残念なことに、Configurableクラスの中にはTransactionalを使用するものもあります。 '原因:java.lang.IllegalStateException:ポストプロセッサが型のBeanインスタンスを置き換えようとしました*元のクラス名*を(型の)プロキシオブジェクトに置き換えました*いくつかの奇妙なウィービングプロキシクラス名*アスペクト設定クラスではサポートされていません! –

+0

@ snoopy-whoopyこれは別の問題ですので、新しい質問を開きます。あなたが見つけて答えたら、あなたの答えも投稿してください! – cb4

+0

@ cb4アドバイスありがとう!私は答えを見つけましたが、私はここで初心者です。定期的な回答として、または私の問題の説明へのコメントとして? –

関連する問題