プロジェクトを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-tx
とpersistence-api
の依存関係を追加しようとしましたが、何も動作しません。そして最後の注記:プロジェクトはmvn install
を2回目に実行し成功し、mvn clean install
を実行するたびに失敗しました。
私は本当にこのエラーに固執しているので、どんな助力も非常に感謝しています。
おかげで、スタースを!それは本当に現在の問題を解決しました。今私はプロジェクトをビルドすることができますが、残念なことに、Configurableクラスの中にはTransactionalを使用するものもあります。 '原因:java.lang.IllegalStateException:ポストプロセッサが型のBeanインスタンスを置き換えようとしました*元のクラス名*を(型の)プロキシオブジェクトに置き換えました*いくつかの奇妙なウィービングプロキシクラス名*アスペクト設定クラスではサポートされていません! –
@ snoopy-whoopyこれは別の問題ですので、新しい質問を開きます。あなたが見つけて答えたら、あなたの答えも投稿してください! – cb4
@ cb4アドバイスありがとう!私は答えを見つけましたが、私はここで初心者です。定期的な回答として、または私の問題の説明へのコメントとして? –