2013-06-14 12 views
5

Stiamo aggiornando la nostra applicazione da Weblogic 10.3.0 a 10.3.6. Quando cerchiamo di distribuirlo otteniamo l'errore:java.lang.ClassFormatError: Duplica il nome del metodo e la firma nel file di classe

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

Con ulteriori indagini abbiamo scoperto che il problema è causato dal codice che assomiglia a questo:

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

Questo porta a 2 metodi foo generate nel Baz .... ELOImpl.class che porta a questo errore quando proviamo a distribuire i file ear.

L'ovvia soluzione è rimuovere questo modello, ma ci sono altri suggerimenti? Siamo noi che abbiamo sbagliato qui o che dovrebbe essere considerato un bug in weblogic?

Stiamo ancora utilizzando EJB 2 e questo modello lavorato in Weblogic 8.1 and 10.3.0

+0

interfaccia Baz estende Foo, Bar {} invece dovrebbe interfacciare Baz implementa Foo, Bar {} –

+5

Sbagliato. Interfacce 'estende' altre interfacce. Interfacce 'implements' delle classi. –

+1

È stato solo aggiornato weblogic? Nient'altro? Inoltre, perché questo modello per iniziare? Che cosa cercava di risolvere questo schema? – fge

risposta

0

Assicurarsi di pulire ricompilare la classe che ha l'errore. Qualsiasi sia il flag che puoi impostare: renderlo più pulito e più forzato, fino a quando non funziona.