2013-06-14 10 views
5

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

+0

Interfejs baz rozszerza Foo, Bar {} zamiast tego powinien bazować interfejs Baz implementuje Foo, Bar {} –

+5

Wrong. Interfejsy rozszerzają inne interfejsy. Interfejsy "implementuje klasy". –

+1

Czy to tylko aktualizacja do weblogii? Nic więcej? Ponadto, dlaczego ten wzór zacząć? Jaki model próbował rozwiązać? – fge

Odpowiedz

0

Upewnij oczyścić skompilować klasę posiadającą błąd. Bez względu na to, jakie flagi możesz ustawić: spraw, by były bardziej czyste i bardziej wymuszone, dopóki nie zadziała.