私の問題の根本は、JBossAS7にデプロイされたWebアプリケーションからSizeOfsourceforgeプロジェクトClassNotFoundException
を使用しようとしていて、 forを取得しようとしていることですnet.sourceforge.sizeof.SizeOf
。サーバーに追加-javaagent:/path_to_jar/SizeOf.jar
し、サーバーの起動時にpremainメソッドからJAVA_OPTS
を確認しSystem.out.println
ました(JAVAGENT:クラスSizeOfのpremainインストルメンテーションを呼び出します)。SizeOf.sizeOf(obj)
ただし、サーブレットのdoGetメソッドから呼び出そうとすると、アプリケーションは前述ので失敗しますClassNotFoundException
。
誰かがこれをJBossAS7で動作させる方法を教えてくれるなら、それは役に立ちます(Eclipseの実行構成で動作させます-コマンドラインから実行するのと同じです)。それ以上に、私が本当にやりたいのは、Javaエージェントのクラスローディングがどのように機能するかを理解することです。私が見つけた最高のドキュメントは、公式のJVMドキュメントにあり、それはかなりまばらです。クラスローディングについては、Premain-Classがシステムクラスローダーによってロードされるということだけです。-javaagent JVM引数がそれを処理するため、jarをクラスパスに配置する必要がないことを示唆するブログ投稿を見ました。したがって、SizeOfjarをとして追加する必要はないようです。 AS7モジュール。私は何かが足りないのですか?