инструментарий байт-кода с помощью ClassFileTransformer.transform

с помощью этого запроса

select tabname from syscat.tables where 
tabschema='myschema' and tabname='MYLOG'

проверьте эту таблицу в вашей схеме

, если существует,

drop table myschema.MYLOG

, затем создайте

6
задан VonC 8 April 2009 в 10:25
поделиться

1 ответ

Возможные причины

.

Неправильный манифест

Вы выполнили все шаги, необходимые для определения класса Instrumentation?

Особенно шаг «упаковки», который включает в себя указание несколько другого набора атрибутов в манифесте JAR. :

  • Вместо Main-Class необходимо указать атрибут Premain-Class , который дает полное имя класса класса, который реализует premain () в вашем агенте.
Premain-Class: my.package.MyAgentClass
  • Если ваш агент использует какие-либо библиотеки классов, вам следует указать атрибут Boot-Class-Path , поскольку вашему инструментальному агенту потребуется, чтобы его библиотеки были видны из загрузчика классов начальной загрузки.
    Если вы этого не сделаете, вам, вероятно, придется использовать wacky -Xbootclasspath / a: ... аргумент в пользу JVM.
    Аргумент командной строки - неплохой способ добиться успеха, но вы хотите использовать этот атрибут в долгосрочной перспективе, потому что командная строка уже растет от необходимости указывать агент инструментария Java. Можно также сделать его максимально простым.

  • Наконец, есть атрибут Can-Redefine-Classes .
    Если для него задано значение true, агент инструментария Java может переопределить классы, которые использует сам агент.
    Это довольно странное обстоятельство, и уж точно не возникнет много.

.

«Безмолвное исключение»

( Реджеев Дивакаран получил это).

Я использовал classBeingRedefined.getName () для печати имени класса.
classBeingRedefined равен null , когда он загружается впервые .

Суть в том, что существует необработанное исключение в методе преобразования .
Он будет молча съеден .

4
ответ дан 17 December 2019 в 07:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: