由于在编译的类文件中缺少调试信息而导致的Paranamer错误

时间:2017-02-10 16:19:37

标签: java parameters websphere bytecode

我正在尝试在部署在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类的源代码,它说

if (!collector.isDebugInfoPresent()) {
            if (throwExceptionIfMissing) {
                throw new ParameterNamesNotFoundException("Parameter names not found for " + methodName);
            } else {
                return Paranamer.EMPTY_NAMES;
            }
        }

我认为这意味着java类没有在websphere上使用调试信息(-g flag?)进行编译,而在eclipse中,我有这些信息。

请告诉我如何在websphere上更正此错误?我们在java编译的类标志中添加了调试信息吗?

由于

艾登

1 个答案:

答案 0 :(得分:2)

感谢@minus,因为编译器服务器中存在一些错误,编译器确实存在问题。 paranamer或代码本身没有任何问题。必须修复编译器的错误。