【发布时间】:2013-06-10 17:44:20
【问题描述】:
我们正在将我们的应用程序从Weblogic 10.3.0 升级到10.3.6。当我们尝试部署它时,我们得到了错误:
java.lang.ClassFormatError: Duplicate method name&signature in class file...
经过进一步调查,我们发现问题是由如下代码引起的:
interface Foo{
void foo();
}
interface Bar{
void foo();
}
interface Baz extends Foo, Bar{}
BazEJB implements Baz....
这会导致 Baz 中生成 2 个 foo 方法....ELOImpl.class 当我们尝试部署 ear 文件时会导致此错误。
明显的解决方法是删除此模式,但还有其他建议吗?我们是这里的错误还是应该将其视为 weblogic 中的错误?
我们仍在使用EJB 2,这种模式在Weblogic 8.1 and 10.3.0 中有效
【问题讨论】:
-
错了。接口
extends其他接口。类implements接口。 -
只有weblogic升级了吗?没有其他的?另外,为什么要从这种模式开始?这种模式试图解决什么问题?
-
是的,weblogic 是唯一更新的东西。这种模式大多是偶然出现的。我刚刚清理了一个像这样的 bean,我所要做的就是从一个接口中删除方法,所以这可能是某人过于急切的情况。
-
我以前肯定用过这种模式;通常编译器会确保你不会得到这些错误。听起来你的编译器可能有问题?
标签: java jakarta-ee ejb weblogic