2013-07-10 109 views
6

我正在努力寻找一个奇怪的JSF错误cause。为此,我尝试在JSF呈现期间调用javaee-web-api模块中的源代码,其中NullPointerException被抛出。但是我卡住了,因为调试器没有显示该位置的源代码。剥离的JAR(方法没有字节码)是什么意思?

有一个discussion thread表示javaee-web-api被剥离(方法没有字节码),只能用于编译。

这是什么意思?有人可以更详细地解释它吗?我想了解为什么我无法调试引发NullPointerException的位置。我认为这与这些JAR被剥离的事实有关。

+0

所有我能找到的就是这个帖子,其中记录了同样的问题,但列出了从Oracle的一些原因,这种情况发生:https://community.jboss.org/wiki/WhatsTheCauseOfThisExceptionJavalangClassFormatErrorAbsentCode?_sscc=t –

+0

什么是“不不显示该位置的源代码“是什么意思?你的意思是没有堆栈跟踪,或没有行号的堆栈跟踪? –

回答

2

通常情况下,jar文件中的类文件将包含有关类中代码的行号信息 - 这称为调试信息。剥离的jar根本没有这个信息。

你是正确的,认为这是问题。您看到的堆栈跟踪将不包含任何与已删除jar中的代码相关的行号。由于该jar由第三方提供,因此您无法获得该信息。