Метод отладки NPE в Cocoon

Я унаследовал веб-приложение Java 1.7 на основе Apache Cocoon, которое (развернутое на Tomcat), похоже, работает для статических страниц, но для динамических браузер показывает мне следующее:

      An error has occured

java.lang.NullPointerException:

Cocoon stacktrace[hide]
java.lang.NullPointerException
context:/model-runs/sitemap.xmap - 284:46   <map:serialize type="html">
context:/model-runs/sitemap.xmap - 281:35   <map:transform type="i18n">
context:/model-runs/sitemap.xmap - 273:74   <map:transform type="xslt">
context:/model-runs/sitemap.xmap - 272:79   <map:transform type="xslt">
context:/model-runs/sitemap.xmap - 271:65   <map:generate type="serverpages">
context:/sitemap.xmap - 1162:63 <map:mount>

Как можно это отладить? Я могу запустить проект из Eclipse, также в режиме отладки, но не знаю, где «установить точку останова». Любые указатели оценены!

1 ответ

У вас есть трассировка стека Cocoon, а не Java.

Маловероятно, что стандартный подход отладки Java будет тем, что вам здесь нужно:Cocoon во многом представляет собой платформу, основанную на конфигурации, и для выяснения причины такого рода ошибок вам наверняка потребуется проникнуть в эти файлы конфигурации и конвейеры обработки они настраивают.

Если я еще помню, здесь этап конвейера, вызвавший ошибку, находится сверху (вполне стандартно). Вы получаете указатель строки/столбца на (XML) описание этапа (здесь html-сериализация), на котором возникла ошибка.

Теперь, является ли NPE вызванным тем, что сериализатор не найден, тем, что он не нашел какой-либо ресурс, который ему нужен в соответствии с его конфигурацией, тем, что он получил ноль с предыдущего этапа (i18n) или кто знает, какая еще причина?

Я бы начал с изучения конфигурации обоих этапов (html-сериализаторы, затем i18n) вчтобы получить контрольный список моих первых шагов по отладке.

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