Как отладить скрипт в бобовом оболочке? - PullRequest
3 голосов
/ 24 января 2009

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

Исключение вызывает метод импортированного объекта. : в строке: 194: в файле: встроенная оценка: `` import java.lang.reflect.InvocationTargetException; import 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));
    }

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

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

Ответы [ 2 ]

1 голос
/ 26 января 2009

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

1 голос
/ 24 января 2009

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

...