java 一种在Cocoon中调试NPE的方法

ffscu2ro  于 2023-05-27  发布在  Java
关注(0)|答案(1)|浏览(121)

我继承了一个基于Apache Cocoon的Java 1.7 webapp,它(部署在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中运行项目,也可以在调试模式下运行,但是我不知道在哪里“设置断点”。任何指针赞赏!

ebdffaop

ebdffaop1#

你得到的是一个Cocoon堆栈跟踪,而不是Java的。
标准的Java调试方法不太可能是您在这里所需要的:Cocoon在很大程度上是一个基于配置的框架,要找出这种错误的原因,肯定需要您进入这些配置文件以及它们配置的处理管道。
如果我还记得的话,在这里,启动错误的管道阶段位于顶部(非常标准)。您将得到一个行/列指针,指向引发错误的阶段(这里是html序列化)的(XML)描述。
现在,NPE是由未找到串行化器引起的,是由于它未找到它根据其配置所需的某些资源,还是由于它从前一个(i18 n)阶段接收到null,或者谁知道还有其他什么原因?
我将从研究sitemap.xml中的两个阶段(html序列化器,然后是i18 n)配置开始,以获得我的第一个调试步骤的检查列表。

相关问题