問題タブ [compile-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.
jpa - Aspectj コンパイル時のウィービング ベースのトランザクションが機能しない (WebService 呼び出しからの JPA)
Spring の @Transactional や @Configurable などのアノテーションをサポートするために、コンパイル時の織りで aspectj を使用しようとしています。私は org.springframework.orm.jpa.JpaTransactionManager トランザクション マネージャーを使用しています。GenericDAO で entityManager.persist(entity) を呼び出そうとするとログに表示される内容は次のようなものです。
そのため、テーブルごとの休止状態シーケンスは更新されますが、私のエンティティはデータベースに挿入されません。
entityManager.flush() を追加すると、「進行中のトランザクションはありません」という例外が表示されます。
ここで何が起こっているのですか?!
私の GenericDAO クラスは次のようになります。
WSSpringServletでエクスポートされた Web サービスから saveOrUpdate メソッドを呼び出します。
PS: また、私の Maven 設定は次のようになります。
コンパイルすると、十分にまともなものが得られます(私のアスペクトが適用されます):
そして、私の関連するSpring構成は次のとおりです。
すべてがまともに見えますが、これが機能しない理由の答えが見つかりません...
spring - @Configurable(Mavenを使用)を使用したjar依存関係のオブジェクトのSpring 3コンパイル時間織りの問題
あまりにも長い間グーグルでこれに取り組んできました。さまざまなスタックオーバーフローの投稿も調べましたが、ここで何が起こっているのかまだわかりません。
まず、私が欲しいもの:
Web プロジェクトで依存関係として使用される持続性 jar があります。この永続化 jar 内で、daos は Web プロジェクトの spring 構成を使用して適切にセットアップされます。ただし、今やりたいことは、基本クラス (抽象) にあります。文字列にプロパティ セットを注入できるようにしたいのですが、この抽象クラスを拡張するクラスは、Spring を介して直接制御されません (たとえば、new を介してインスタンス化されます)。 MyImp().)
収集したすべてのものから、 @Configurableを使用して活用する必要があります。
奇妙なことに、コードはすべてコンパイルされます (アスペクトプラグインを使用する Maven を使用)。@Configurable 抽象クラスを拡張するオブジェクトへの呼び出しが「ブラックホール」に陥るように見えるため、いくつかのウィービングが行われている必要があると思います-まだエラーはありません古い skool System.out.print ステートメントを介してシステムに出力することさえできませんか??? 本当に奇妙です。
以下は、私がどのようにセットアップしたかに関する関連情報だと思います...(明らかにすべてを表示しているわけではありません):
Web プロジェクトの春の設定:
上記の Web プロジェクト (MyAbstractClass とその子孫を保持する) で使用される jar には XML がありません。さまざまなファイルが MyAbstractClass を拡張し、new を介してアプリケーション内で作成されます。 MyImp imp = new MyImp(); imp.bar();
MyAbstractClass 関連情報:
後で @Autowiring をいじったり、@Value を使ったりすることはできますが (とにかく最初に試したのはこれです)、今のところ、ウィービングが正しく機能しているかどうかさえわかりません。おそらく問題は、持続性 jar が最初に maven を介して (ウィービングを使用して) コンパイルされることですが、web プロジェクトに基づいて後で xlsDir のセッターが何であるかがわからないのでしょうか? しかし、なぜ bar() の呼び出しが消えてしまうのか、それは説明できません。何かが起こっているのです。
両方のプロジェクトで、Spring Roo の pom で見たものに基づいてコンパイルするように maven をセットアップしました (この pom に本当に必要なものをオンラインで特定するのは非常に困難で、maven の側面が spring で織り込まれています)。
関連する pom 情報は次のとおりです (Spring Roo のコメントを以下に残しました - それらは私のものではありません)。
どんな助けでも大歓迎です。私はすぐにあきらめようとしており、プロパティファイルを静的ブロックにロードして、それで完了です:)
maven-2 - NetBeans + Maven + Aspectj コンパイル時間の織り方
私は、aspectj (主に @Configurable アノテーション用) を使用したコンパイル時の織り込み用に Maven プロジェクトをセットアップしました。すべてが完全なビルドで正常に動作しますが、Netbeans には、他の多くの IDE と同様に、「その場で」再コンパイルとホットデプロイメントを行うこの機能があります。それを行うと、アスペクトが織り込まれなくなるため、あらゆる種類の NPE が発生します。解決策は何ですか?
eclipse - Eclipse 組み込み Tomcat のコンパイル時のアスペクト ウィービングを有効にする方法
動的 Web プロジェクトで Eclipse と Aspectj を機能させようとすると問題が発生します。Eclipse ビジュアライゼーション機能を使用できるように、コンパイル時のウィービングを探しています。
ここに記載されている手順に従いました:
https://forums.oracle.com/forums/thread.jspa?messageID=8591748
Eclipse Indigo (3.7) と最新の Aspectj Eclipse プラグイン (2.1.3) を使用します。
手順は次のとおりです。
[1]基本的なサーブレットを作成する
[2] デプロイメント記述子 (web.xml) にサーブレットを追加する
【3】アスペクトを作る
ただし、このノーサイコロを実行すると、アスペクトは実行されません (サーブレットは応答に書き込み、アスペクトはコンソールに書き込みます)。通常のJavaプロジェクトでも同様のことを行いましたが、うまくいきました。
Web アプリの META-INF ディレクトリに aop.xml を追加するためのガイドラインがあることに注意してください。ただし、これはうまくいきませんでした。
私たちの目標は、Spring 以外のフレームワーク (または Maven) プロジェクトの eclipse を介して、開発中に非侵襲的に aspectj を実行することです。これは簡単なはずですが、機能させることができませんでした。
Eclipse での Web アプリのコンパイル時のウィービングに関する提案やチュートリアルへの参照は役に立ちます。アプリ サーバーは Tomcat 6 に組み込まれています (ただし、必要に応じて tomcat 7 にアップグレードできます)。
本番環境のコードに影響を与えずに実行時に開発環境を微調整できる機能は、機能させることができれば素晴らしいことです。回答は大歓迎です。
java - スタックトレースを解釈する方法は?
IBM RAD 8 を使用して websphere にデプロイすると、次のスタックトレースが得られます。
どういう意味ですか?エラーを解決するには、どのような手順を実行する必要がありますか?
助けてくれてありがとう
eclipse - Eclipse で JDT Weaving を有効にできないのはなぜですか?
Eclipse Indigo で単純な Spring Roo プロジェクトを作成しました。ここで、コマンドを使用して jpa エンティティが生成されdbre
ます。クラスにメソッドを追加したい場合、Spring Roo が生成したアスペクトを介してエンティティーに組み込まれているメソッドを使用できません。
Eclipse でプロジェクトをクリーンアップしてビルドすると、プログレス ビューにアスペクトがクラスに織り込まれていることが示されます。ビルドは、Maven 3.0.4 を使用してコマンド ラインで正常に実行されます。Maven は、アスペクトのメソッドが使用されている場合、Eclipse でコンパイル エラーとマークされているコードもコンパイルします。
設定を介して JDT Weaving を有効にしようとしましたが、Eclipse wiki から手動でアクティブ化するための指示にも従いました
私が直面している問題は、無効になっている JDT Weaving 機能に関連しているというのは正しいですか? はいの場合、JDT Weaving を有効にする方法、または有効にならない理由を見つけるにはどうすればよいですか?
手伝ってくれてありがとう
編集:
新しいワークスペースを作成し、Spring Roo プロジェクトを Maven プロジェクトとしてインポートしました。レガシー STS プロジェクトを変換しようとするダイアログが表示されます。確認したところ、何も起きていないようです。しかし、少なくとも、Spring Roo によって生成されたエンティティにアドバイス マーカーが表示されるようになりました。しかし、クラスで編み出されたメソッドはまだ使用できません。
編集:
コンパイル エラーがあっても、JUnit テストの実行も問題ありません。私はエクリプスインディゴを使用しています。
spring - Spring で Load Time Weaver から Compile Time Weaver に変更する際の問題
Spring 2.5 アプリでロード時ウィービングからコンパイル時ウィービングに変更しようとしています。
これを行うには、次のことを行いました。
私のantビルドファイルに、追加しました
/li>
javac コンパイラへの参照を次のように置き換えました。
applicationContext.xml で、次に置き換えました
と
私のアプリ コンテキスト ファイル、ところで、その他の構成設定には、次のものが含まれます。
context.xml ファイルで、loader タグから以下を削除しました
ビルド スクリプトを実行すると、エラーなしでコンパイルされます。
ただし、この警告が表示されます。
上部に、この警告が下部にあります。
ロギングのほとんどは次のようになります。
tomcat lib から tomcatspringweaver jar を削除しました。私はaspectj1.7を使用しています
アプリを起動すると、dao クラスがサービス クラスに注入されているときに、org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:104) に NPE があることを示すエラーが表示されます。
Dao クラスは、次のような AbstractJpaDao クラスを拡張します。
これらすべてが最初にセットアップされてから長い時間が経ちましたが、すべての構成がどのように機能したか覚えていません。また、クラスローダーや AspectJ についてもよく理解していません。しかし、何かが正しく起こっていません。おそらく何らかの理由で Entitymanager が注入されていません。
質問。
- 何が原因でしょうか?
- 本当に
<context:spring-configured/>
必要ですか? - が参照するパッケージ
<context:component-scan base-package="com.domain.somepackage"/>
には、問題の Dao クラスが含まれていません。dao のパッケージを含む別の component-scan タグを追加しても、何も変わりません。これは必要ですか?
java - 生成されたメソッドの見分け方 (AspectJ)
私は現在、自分のコードを検査するために、aspectJ @Around を使用しています。アスペクトを織り込むために、アスペクトJコンパイラを使用しています。しかし、実行時には、リフレクションを使用してクラスの構造も分析していますtype.getDeclaredMethods()
。しかし、元々存在していたメソッドと、aspectJ コンパイラによって追加されたメソッドを区別する必要があります。出来ますか?または、何か回避策はありますか?
前もって感謝します。
aop - Spring roo によって生成されたアスペクトが依存プロジェクトによって織り込まれていることを確認するにはどうすればよいですか?
Spring Rooマルチモジュール プロジェクトがあります。ドメイン モデルを含む jar/module を別のプロジェクトに含めた後、アスペクトが織り込まれておらず、使用可能なゲッター/セッターのないドメイン クラスが残っていることに気付きました。
Spring roo によって生成されたアスペクトが依存プロジェクトによって織り込まれていることを確認するにはどうすればよいですか?
EDIT : Roo のアスペクトを別のプロジェクトから使用できるようにするには、依存プロジェクトにアスペクト J プラグインを含める必要があります。そのようにコンパイル時のロードは必要ないことに注意してください。
java - サードパーティのjarファイルをMavenでウィービングする部分コンパイル時
Mavenプラグインaspectj-maven-pluginを使用してサードパーティのjarをウィービングするように構成しました。
欠落しているJavaクラスへの参照に問題があります。Quartz jarにはJMSとの統合がいくつかありますが、私のアプリケーションはJMSを使用しないため、これらのクォーツファイルはロードされません。
私はproceedOnError=trueの松葉杖を見つけましたが、アスペクト注釈付きクラスへのエラーの発生により、動作が停止すると思います。
shadow-maven-pluginは、パッケージフェーズによってのみトリガーされる可能性があり、aspectjはコンパイルフェーズで起動するため、ここには適合しません。