2013-06-14 3 views
5

Wir aktualisieren gerade unsere Anwendung von Weblogic 10.3.0 auf 10.3.6. Wenn wir versuchen, es zu implementieren wir den Fehler:java.lang.ClassFormatError: Doppelte Methodenname und Signatur in der Klassendatei

java.lang.ClassFormatError: Duplicate method name&signature in class file... 

Bei der weiteren Untersuchung stellten wir fest, dass das Problem durch Code verursacht, die wie folgt aussieht:

interface Foo{ 
    void foo(); 
} 
interface Bar{ 
    void foo(); 
} 
interface Baz extends Foo, Bar{} 
BazEJB implements Baz.... 

Dies führt zu 2 foo Methoden generiert wird in der Baz .... ELOImpl.class, die zu diesem Fehler führt, wenn wir versuchen, die Ear-Dateien bereitzustellen.

Die offensichtliche Problemumgehung ist, dieses Muster zu entfernen, aber gibt es andere Vorschläge? Sind wir diejenigen, die hier falsch liegen, oder sollte das ein Fehler in der Weblogik sein?

Wir sind immer noch mit EJB 2 und dieses Muster arbeitete in Weblogic 8.1 and 10.3.0

+0

Schnittstelle Baz erweitert Foo, Bar {} stattdessen sollte es Schnittstelle Baz implementiert Foo, Bar {} –

+5

Falsch. Schnittstellen "erweitern" andere Schnittstellen. Klassen implementieren Schnittstellen. –

+1

Wurde nur Weblogic aktualisiert? Nichts anderes? Auch, warum dieses Muster zu beginnen? Was versuchte dieses Muster zu lösen? – fge

Antwort

0

Stellen Sie sicher, um die Klasse zu reinigen neu kompilieren mit dem Fehler. Welche Flaggen Sie auch setzen können: Machen Sie es sauberer und forcierter, bis es funktioniert.