問題タブ [load-time-weaving]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - ejb モジュールを追加すると、Spring トランザクションが停止する
1 つの ejb と 1 つの war モジュール、および dao やサービスなどの他のローカル jar 依存関係で構成される ear があります。
プロジェクトを github https://github.com/SunPj/spring-load-time-weavingに配置しました
バネ負荷時織りを使用しています。私のdaoアプリケーションコンテキストは次の行で構成されています
私のキャッシュコンテキストは<cache:annotation-driven mode="aspectj"/>
私の Web モジュールにはコントローラーがあります
サービスは次のようになります
ダオ
ejb にはサービス依存関係がないため、すべて正常に動作します。サービスの依存関係を ejb モジュール (some-ejb の pom) に追加するとすぐに、トランザクションが停止しました。
github の最後の 2 つのコミット (commit 973f48a9e0db11edc3675fd09b6930f05b98afc9 および commit e7d280cb93b2303bfcfbd5cd0b55d24b002be8fc) は、動作している状況と動作していない状況の両方を示しています。
aspectj - AspectJ と Java8 - オペランド スタックの不正な型
This Eclipse Bugを見ると、Java Verifier (1.6 以降) に ApsectJ に関する問題があったようです。
バグには、AspectJ 1.8.1 で問題が修正されると書かれています。しかし、Java8u11でそれを使用すると、まだ検証エラーが発生します。
STS 3.6.0 (Eclipse 4.4) で JUnit4 を実行しています。この構成は、すべてのパッケージの中で最新のものだと思います。
残りのテキストを要求された例に完全に置き換えました。これは @Around アドバイスに限定されているようです。 @Before は正常に動作します。
JUnit:
Vmarg: -javaagent:C:....m2\repository\org\aspectj\aspectjweaver\1.8.1\aspectjweaver-1.8.1.jar
テスト中のクラス (Proceed が Throwable をスローすると明らかに宣言しているため、いくつかの問題がありましたが、これは理にかなっていますが、この単純なテストでは何もスローされませんでした。そのため、偽の例外を追加してコンパイルさせました。
アスペクト:
最後に、JUnit が AspectTarget (testFirstMethod メソッドの最初の行) をインスタンス化しようとしたときに実際にスローされるエラーがもう一度発生します。
spring - jpaエンティティを拡張しないWebSphere Load-Timeウィービング
最新の構成で質問全体を書き直しました。私は何度も変更とテストを行ってきましたが、まだ適切な解決策が見つかりません。
プロジェクトで jpa クラス拡張のロード時ウィービングを有効にするのが困難です。
私はopenjpa 2.2.2を使用するWebsphere 8.5を使用しています。エンティティとカスタムの名前付きファイルを含む1 つ以上の依存 jar を持つ 1 つのファイルがあります。Ear
War
JPA
persistence.xml
そのようです:
control-context.xml と呼ばれる control.jar 内のメイン コンテキスト ファイルは次のとおりです。
META-INF/<module-name>/<module-name>-persistence.xml
Spring が提供するマージ永続ユニット マネージャーを使用して、各 jar のフォルダーの下にあるカスタム永続ユニット xml の永続ユニット宣言を結合しています。例えばMETA-INF/core/core-persistence.xml
。
そのようなファイルの 1 つを次に示します。
私のエンティティにはすべて @Entity と適切な @Id タグがあり、そうでないものはありません。以前はエンティティとして機能しており、変更していないため、エンティティが有効であると確信しています。
そして今、質問のために:
oneEMF を使用する mod1 jar に、Spring Rest jpa リソース リポジトリをセットアップしました。
アプリケーションをデプロイして開始した後に URL にアクセスすると、次のメッセージが表示されます。
読み込み時にエンティティが強化されないのはなぜですか?
このおそらく単純なセットアップを構成しようとして何時間も無駄にしましたが、なぜ機能強化が行われないのか途方に暮れています. 助けや同情さえあれば大歓迎です。
アップデート:
war classes フォルダーの META-INF ディレクトリにダミーの persistence.xml を配置すると、エンティティ スキャンがトリガーされましたが、読んだ内容から、spring で packagesToScan を使用している場合、persistence.xml は必要ありません。このパッケージ スキャンは、load-time-weaver によって強化されるエンティティを参照していますか?
お時間をいただきありがとうございます。
java - JPA - ウィービングのパフォーマンスへの影響
静的ウィービングと動的ウィービングのパフォーマンスの向上を示すベンチマークまたは大規模なテストを見つけることができません。誰かがこれについて何か経験がありますか?
spring - Spring Boot AOP ロード時間の織り方
何が問題なのかはわかりませんが、Spring Boot (v1.1.6) を使用したセットアップで AOP が機能していないようです。
そしてアスペクトクラスで
アドバイスが必要なサービスクラスで
META-INF/aop.xml もあります
-javaagent:path/to/spring-instrument-4.1.0.RELEASE.jar でアプリケーションを実行すると
コンソールにこのメッセージが表示されます
アドバイスしても何も起こりません。発火しません。
私は何か間違ったことをしていますか?