Модуль Byteman и JBoss

Я не могу с byteman 4.0.15 и JBoss EAP 7.3 иметь вспомогательный класс, чтобы получить соединение с модулем IronJacamar, я столкнулся с NoClassDefFoundException, когда мой вспомогательный класс пытается его получить.

здесь btm, я добавил IMPORT с именем модуля ironjacamar Jboss Module

      RULE WrappedDataSource getcnx
CLASS org.jboss.jca.adapters.jdbc.WrapperDataSource
IMPORT org.jboss.ironjacamar.jdbcadapters
METHOD getConnection()
HELPER org.jboss.byteman.ConnectionHelper
AT EXIT
IF true
       DO traceConnection($!);
ENDRULE

Вот мой вспомогательный класс (пакет с именем org.jboss.byteman и упакованный в bytemanhelper-0.0.1-SNAPSHOT.jar):

      package org.jboss.byteman;

import org.jboss.byteman.rule.Rule;
import org.jboss.byteman.rule.helper.Helper;
import org.jboss.jca.adapters.jdbc.jdk8.WrappedConnectionJDK8;

import java.sql.SQLException;

public class ConnectionHelper  extends Helper {

    protected ConnectionHelper(Rule rule) {
        super(rule);
    }

    public void traceConnection(final Object connection) {
            try {
                System.out.println("Real connexion =" + ((WrappedConnectionJDK8)connection).getUnderlyingConnection());
            } catch (SQLException e) {
                e.printStackTrace();
            }
    }
}

Я добавил следующие свойства в JBoss EAP:

       -Djboss.modules.system.pkgs=org.jboss.byteman -javaagent:/var/byteman-download-4.0.15/lib/byteman.jar=script:/var/bytemanrules.btm,sys:/var/bytemanhelper-0.0.1-SNAPSHOT.jar,sys:/var/byteman-download-4.0.15/contrib/jboss-modules-system/byteman-jboss-modules-plugin.jar,modules:org.jboss.byteman.modules.jbossmodules.JBossModulesSystem  -Dorg.jboss.byteman.transform.all=true 

Но когда выполняется метод traceConnection

      ((WrappedConnectionJDK8)connection).getUnderlyingConnection()

У меня есть java.lang.NoClassDefFoundError: org/jboss/jca/adapters/jdbc/jdk8/WrappedConnectionJDK8, хотя этот класс присутствует в ironjacamar-jdbc-1.4.30.Final-redhat-00001.jar, хранящемся в JBoss Module org. .jboss.ironjacamar.jdbCADapters.

Есть ли способ перехватить и обработать классы модулей JBoss с правилами byteman?

Пьер

0 ответов

Другие вопросы по тегам