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

Aid*_*den 7 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)
Run Code Online (Sandbox Code Playgroud)

我检查了paranamer BytecodeReadingParanamer类的源代码,它说

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

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

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

谢谢

艾登

Aid*_*den 2

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