Jesteśmy w trakcie aktualizacji naszej aplikacji z Weblogic 10.3.0
do 10.3.6
. Kiedy staramy się je wdrożyć otrzymujemy błąd:java.lang.ClassFormatError: Zduplikowana nazwa metody i podpis w pliku klasy
java.lang.ClassFormatError: Duplicate method name&signature in class file...
Po dalszych badaniach okazało się, że problem jest spowodowany przez kod, który wygląda tak:
interface Foo{
void foo();
}
interface Bar{
void foo();
}
interface Baz extends Foo, Bar{}
BazEJB implements Baz....
Prowadzi to do 2 generowane metody Foo w Baz .... ELOImpl.class
, który prowadzi do tego błędu, gdy próbujemy wdrożyć pliki ucha.
Oczywistym rozwiązaniem jest usunięcie tego wzorca, ale czy są jakieś inne sugestie? Czy my jesteśmy tymi, którzy są w błędzie, czy powinniśmy to uważać za błąd w weblogii?
Jesteśmy nadal używa EJB 2
i ten wzór pracował w Weblogic 8.1 and 10.3.0
Interfejs baz rozszerza Foo, Bar {} zamiast tego powinien bazować interfejs Baz implementuje Foo, Bar {} –
Wrong. Interfejsy rozszerzają inne interfejsy. Interfejsy "implementuje klasy". –
Czy to tylko aktualizacja do weblogii? Nic więcej? Ponadto, dlaczego ten wzór zacząć? Jaki model próbował rozwiązać? – fge