由于编译的 class 文件中缺少调试信息而导致参数错误
Paranamer error due to missing debug information in compiled class files
我正在尝试 运行 对部署在 WebSphere 上的应用程序进行 spring 批处理。当我 运行 使用 Eclipse 的批次时,所有 运行 都很好,但是当我 运行 在 WebSphere 上部署的应用程序中使用同一批次时,它给出错误
com.thoughtworks.paranamer.ParameterNamesNotFoundException: Parameter names not found for executeMethod
at com.thoughtworks.paranamer.BytecodeReadingParanamer$TypeCollector.getParameterNamesForMethod(BytecodeReadingParanamer.java:209)
我检查了 paranamer BytecodeReadingParanamer
class 的源代码,它说
if (!collector.isDebugInfoPresent()) {
if (throwExceptionIfMissing) {
throw new ParameterNamesNotFoundException("Parameter names not found for " + methodName);
} else {
return Paranamer.EMPTY_NAMES;
}
}
我认为这意味着 Java class 在 WebSphere 上未使用调试信息(-g
标志?)编译,而在 Eclipse 中,我有此信息。
如何在 WebSphere 上更正此错误?我们是否在 Java compiled classes flag 中添加调试信息?
感谢@minus,问题确实出在编译器上,因为编译器服务器中存在一些错误。参数或代码本身没有任何问题。必须修复编译器的错误。
我正在尝试 运行 对部署在 WebSphere 上的应用程序进行 spring 批处理。当我 运行 使用 Eclipse 的批次时,所有 运行 都很好,但是当我 运行 在 WebSphere 上部署的应用程序中使用同一批次时,它给出错误
com.thoughtworks.paranamer.ParameterNamesNotFoundException: Parameter names not found for executeMethod
at com.thoughtworks.paranamer.BytecodeReadingParanamer$TypeCollector.getParameterNamesForMethod(BytecodeReadingParanamer.java:209)
我检查了 paranamer BytecodeReadingParanamer
class 的源代码,它说
if (!collector.isDebugInfoPresent()) {
if (throwExceptionIfMissing) {
throw new ParameterNamesNotFoundException("Parameter names not found for " + methodName);
} else {
return Paranamer.EMPTY_NAMES;
}
}
我认为这意味着 Java class 在 WebSphere 上未使用调试信息(-g
标志?)编译,而在 Eclipse 中,我有此信息。
如何在 WebSphere 上更正此错误?我们是否在 Java compiled classes flag 中添加调试信息?
感谢@minus,问题确实出在编译器上,因为编译器服务器中存在一些错误。参数或代码本身没有任何问题。必须修复编译器的错误。