私の wildfly 8.1.0 サーバーが起動すると、クラスのインスタンスが作成されます。
それが起こっているかどうかはわかりませんし、ソース コードを変更することもできないので、Byteman を使用してこれを達成しようと考えました。
Byteman 用にこのルール ファイルを作成し、次の場所に保存しましたC:\app\ECLSManagedConnectionFactory.btm
。
RULE trace ECLSManagedConnectionFactory init entry
CLASS com.empolis.ecls.server.j2ee.jca.impl.ECLSManagedConnectionFactory
METHOD <init>
AT ENTRY
IF true
DO traceOpen("ECLSManagedConnectionFactory", "/app/ECLSManagedConnectionFactory.log");
traceln("entering <init>");
traceClose("ECLSManagedConnectionFactory");
ENDRULE
Byteman をダウンロードして解凍しましたC:\byteman-3.0.3
。
私は自分を変更し、java_opts
起動時にwildflyに値をエコーさせました:
-Xms64m -Xmx512m -XX:MaxPermSize=256m
-Dorg.jboss.byteman.transform.all
-javaagent:C:/byteman-3.0.3/lib/byteman.jar=script:C:/app/ECLSManagedConnectionFactory.btm,boot:C:/byteman-3.0.3/lib/byteman.jar:listener:true
-Dsun.rmi.dgc.client.gcInterval=3600000
-Dsun.rmi.dgc.server.gcInterval=3600000
-Djava.net.preferIPv4Stack=true
-Dorg.jboss.resolver.warning=true
-Djboss.modules.system.pkgs=org.jboss.byteman
-Djboss.server.default.config=cls.xml
上記の 2 行目と 3 行目が存在しない場合、サーバーは正常に起動しますjava_opts
が、それらを追加した瞬間、サーバーは単に起動しません。何が起こっているかを示すものは、stdout または stderr にはありません。server.log
詳細を確認するようにというメッセージが表示されますが、そのファイルは存在しません。
私は何を間違っていますか?パスのスラッシュ方向のすべての組み合わせを試しました(重要な場合はWindows 10で)。
誰かが実際にこのbyteman
ツールを使用していますか? Stack Overflow にタグがなく、オンラインで入手できる情報がほとんどないことに驚いています。