問題タブ [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 - Loadtime-AspectJをアプレットで動作させるにはどうすればよいですか?
AspectJ LoadTime-Weavingはエージェント/それ自体のクラスローダーを使用してJVMをロードする必要があるため、アプレットからユーザーのJVMをロード/変更する方法はありますか?または、アプレットをロードする直前(親アプレットを使用しますか?)
spring - Spring Dependency アノテーション付きのアスペクトを注入する
Spring を使用して、注釈付きの Aspect クラスで依存性注入を行う際にいくつか問題がありました。Spring コンテキストの起動時に CacheService が注入されますが、ウィービングが行われると、cacheService が null であることが示されます。そのため、Spring コンテキストを手動で再検索し、そこから Bean を取得する必要があります。それについて別の方法はありますか?
これが私のアスペクトの例です:
java - aop.xml を使用した AspectJ での読み込み時間の織り込み
私が理解していることから、aop.xml ファイルを使用してロード時の織り込みを機能させるには、META-INF に配置する必要があります。これを回避し、任意のディレクトリで aop.xml (または任意の xml ファイル) を使用する方法はありますか? ありがとう。
spring - aop.xmlの名前と場所?
LTWでaop.xmlファイルの名前を指定する方法はありますか?または別の名前と場所を定義しますか?私が使用しているソフトウェアモジュールがいくつかあり、それらはすべて異なる設定でMETA-INF/aop.xmlを使用しています。私はこれらのモジュールをWebアプリケーションに含めますが、それはすべて、展開/解凍の方法、どのaop.xmlファイルが使用されるかに依存します。したがって、長い間検索した結果、すべてのLTWウィービングがaopに依存するため、修正を行うわけではないことがわかりました。 xmlが使用されました...
基本的に、両方のaop.xmlファイルを使用する必要があります。これは、aop.xmlファイルの両方のコンテンツをマージするようなものです...
これを行う方法?エド
java - 署名されたjarファイルのAspectJロード時ウィービング
署名されたjarファイルでAspectJロードタイムウィービングを使用することに成功した人はいますか?
例外が発生し、それを修正する方法がわかりません(AspectJ 1.6.8-16.10でテスト済み):
率直に言って、技術的に可能かどうかはわかりませんが、同様の問題(署名されたJavaクラスから動的に生成されたJavaコードを使用)がHibernateプロジェクト(つまり、CGLIBの代わりにJavassistを使用)で行われたことは知っています。詳細はこちら。
spring - AspectJ の Spring 3 で JBoss 6 でロードタイムウィーバーを使用するには?
AspectJ、Spring 3、および JBoss 6 を使用してみましたが、ロード時間の織り方がまったく機能しないという問題に遭遇しました。小さなサンプルを作成すると、単純な Bean と単純なアスペクトを持つ同じ war ファイルが JBoss 5.1 で正常に動作するが、JBoss 6 では LTW をまったくトリガーしないことが示されました。
更新: Spring バグトラッカーで問題をオープンしました -> https://jira.springsource.org/browse/SPR-7887
aspectj - AspectJ - コンパイル時とロード時の織り方
私は、プロジェクトをコンパイルしてビルドするために、aspectJ のコンパイル時とロード時の織り方を理解し、何を使用するか (および ajc を使用する方法) を理解するのに苦労しています。
これが私のプロジェクト構造です:-
TestProject : Java サービス ライブラリ。これは、他のいくつかのプロジェクトで使用されています。このプロジェクトにはアスペクトが含まれていません。
TestProject-Aspects : TestProject
のいくつかのクラスにアドバイスするアスペクトのみが含まれます。私は
AspectJ5 アノテーション スタイルを使用しておらず、すべてのジョインポイントは現在メソッドの
実行中です。
私の質問:
- ajc と iajc の違いは?
織る必要はありますか?
このようなものは機能しますか?
TestProject-Aspects のコンパイル
TestProject のコンパイル
- javac をまったく使用する必要はありませんか? TestProjectをコンパイルするために最初に使用していたものはどれですか?
spring - REST テスト用に Spring/Jetty (または Tomcat)/Maven を使用して統合テストを構成する
HTTP リクエストを使用して REST サービスをテストしたいと思います (ちょっとしたブラックボックス テスト)。ただし、数時間グーグルでさまざまな構成を試しても、まだ Jetty を正しく起動できません。これが私の現在の構成です(複数の異なるバージョンを試しました):
pom.xml
orm.xml
現在、例外が発生しています:
- java.lang.IllegalStateException: ClassLoader [org.mortbay.jetty.webapp.WebAppClassLoader] は「addTransformer(ClassFileTransformer)」メソッドを提供しません。カスタム LoadTimeWeaver を指定するか、Spring のエージェントで Java 仮想マシンを起動します: -javaagent:org.springframework.instrument.jar
例外は理解できましたが、修正できませんでした。また、MAVEN_OPTS を介して javaagent を指定したり、VM 引数を Jetty に設定したりするなど、他のいくつかのアプローチも試しました。問題は、Google がさまざまなバージョンに対して一連の「解決策」を提供し、どれも機能していなかったことです。
私は現在、REST サービス テストを実行するような一般的なシナリオを Spring で実現するのが非常に難しいことにかなり不満を感じています。したがって、適切な構成を見つけるのに十分なほど賢い場合は、サルでも構成できる方法でそれを共有してください。
私が使用するバージョンは次のとおりです。
Maven 2.21
必要に応じて、より多くの情報を喜んで提供します。私が言ったように、すべての助けに感謝します。
java - 他の方法で-javaagentを指定する
次のコマンドを使用してWebアプリケーションを起動できるようにしようとしています。
Jettyを埋め込み、Mavenアセンブリを使用して必要なjarを作成しましたが、これはすべて完全に機能しますが、AspectJでLTWが必要であることに気づきました。通常、アプリがアプリサーバーにデプロイされると、-javaagent:aspectjweaver.jarがアプリサーバーのスタートアップに追加されます。アプリのクリーンなスタートアップラインを次のように変えたくありません。
それで、これに頼らずにAspectj LTWを開始できる別の方法はありますか?