Как отлаживать скрипт beanshell?

У меня проблемы с отладкой сценария beanshell, все, что я получаю все время, это:

Исключение, вызывающее метод импортированного объекта. : в строке: 194 : в файле: встроенная оценка: ``import java.lang.reflect.InvocationTargetException; импортировать java.util.Arrays; я . . . '': migrateModels (модели, apiManager, isSAPRetailImportCondition, isSAPAFSCondition)

Вызывается из метода: initMissingImportSources: в строке: -1: в файле:: Целевое исключение: java.lang.reflect.InvocationTargetException

at bsh.BshMethod.invoke(Unknown Source)
at bsh.BshMethod.invoke(Unknown Source)
at bsh.Name.invokeLocalMethod(Unknown Source)
at bsh.Name.invokeMethod(Unknown Source)
at bsh.BSHMethodInvocation.eval(Unknown Source)
at bsh.BSHPrimaryExpression.eval(Unknown Source)
at bsh.BSHPrimaryExpression.eval(Unknown Source)
at bsh.BSHBlock.evalBlock(Unknown Source)
at bsh.BSHBlock.eval(Unknown Source)
at bsh.BshMethod.invokeImpl(Unknown Source)
at bsh.BshMethod.invoke(Unknown Source)
at bsh.BshMethod.invoke(Unknown Source)
at bsh.This.invokeMethod(Unknown Source)
at ImportSourceMigration.initMissingImportSources(BeanShell Generated via ASM (www.objectweb.org))
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at bsh.Reflect.invokeMethod(Unknown Source)
at bsh.Reflect.invokeObjectMethod(Unknown Source)
at bsh.Name.invokeMethod(Unknown Source)
at bsh.BSHMethodInvocation.eval(Unknown Source)
at bsh.BSHPrimaryExpression.eval(Unknown Source)
at bsh.BSHPrimaryExpression.eval(Unknown Source)
at bsh.BSHBlock.evalBlock(Unknown Source)
at bsh.BSHBlock.eval(Unknown Source)
at bsh.BSHBlock.eval(Unknown Source)
at bsh.BSHTryStatement.eval(Unknown Source)
at bsh.Interpreter.eval(Unknown Source)
at bsh.Interpreter.eval(Unknown Source)
at bsh.Interpreter.eval(Unknown Source)
at bsh.servlet.BshServlet.evalScript(Unknown Source)
at bsh.servlet.BshServlet.doGet(Unknown Source)

Я пытаюсь получить полную трассировку стека с помощью этого кода

    try {
        migration.initMissingImportSources();
    } catch (java.lang.Throwable e) {
        print(ExceptionUtils.getFullStackTrace(e));
    }

Есть ли возможность получить вызывающее исключение?

Большое спасибо.


person Denis    schedule 23.01.2009    source источник


Ответы (2)


Что вы на самом деле делаете «ExceptionUtils.getFullStackTrace ()»? Вы уверены, что он печатает вложенное исключение?

person Damien B    schedule 24.01.2009

Большое спасибо за ответ. Да, getFullStackTrace принадлежит Apache Commons и должен работать. Я нашел проблему. Дело в том, что у меня не было полного скрипта в одном вызове метода. Это важно, только тогда вы сможете окружить его попыткой поймать и увидеть исключение. Надеюсь, что это будет полезно и для других в будущем. Теперь я вижу исключение. У меня было несколько методов, вызывающих друг друга.

person Denis    schedule 26.01.2009