我有一个jar加载在我的类路径(在iReport如果重要),我确定有所需的方法,但是当我尝试测试连接,从而调用jar,我得到一个
java.lang.NoSuchMethodError,它正在引用班上
Lorg/springframework/web/context/WebApplicationContext
我不知道这是否与问题有关,但是“L”在哪里开始呢?另一次我参加一个班,班上有一个’V’.这些信件来自哪里,它们是什么意思?
堆栈跟踪开始:
java.lang.NoSuchMethodError: org.springframework.web.context.ContextLoader .getCurrentWebApplicationContext()Lorg/springframework/web/context/WebApplicationContext;
解决方法
Java使用这些字母在内部对方法签名进行编码.例如,“L”宣布以下“对象”,其由完整的类名称指定,后跟分号. “V”应该在括号前面,并描述一种返回类型“void”.
举个例子:
java.lang.NoSuchMethodError:
org.springframework.web.context.ContextLoader
.getCurrentWebApplicationContext()Lorg/springframework/web/context/WebApplicationContext;
它说,org.springframework.web.context.ContextLoader类中没有方法调用getCurrentWebApplicationContext,它不接受任何参数[由()表示),并返回一个名为“org / springframework / web / context / WebApplicationContext(由’;’关闭).
EDIT2:更加有用:JVM规范的第4.3 Descriptors节包含格式和代码的完整参考.