2010-07-15 7 views
6

Ho un EJB restituisce un elenco di miei ValidationMessage oggetti:weblogic APPC: includere argomenti generici nel vaso di client EJB

@Remote 
public interface Intf { 
    List<ValidationMessage> validateFile(); 
} 

che sto generando JAR client EJB con APPC utilità di WebLogic. Il problema è che non include la classe ValidationMessage nel JAR del client. Forse non vede la dipendenza da questa classe perché guarda solo il codice compilato, quando le informazioni generiche sono già state cancellate.
Se aggiungo un altro metodo fittizio, che restituisce direttamente questa classe, all'interfaccia, tutto va bene.

@Remote 
public interface Intf { 
    List<ValidationMessage> validateFile(); 
    ValidationMessage dummy(); 
} 

La mia domanda è: esiste un modo per risolvere questo problema senza l'aggiunta di un metodo fittizio? C'è un modo per controllare cosa viene incluso da appc nel client JAR?

risposta

0

Questa non è una risposta effettiva e non ho alcuna conoscenza di WebLogic o dell'utilità appc.

Sembra un problema di cancellazione generica. Il tipo di reso effettivo dal metodo validateFile() è il tipo raw List; mentre nel file di classe ci sono informazioni extra per ricostruire i parametri del tipo, alcuni strumenti non li controllano.

Prevedo che questo problema andrà via se si fa riferimento anche alla classe mancante in un parametro di metodo.

+0

questo è esattamente quello che ho scritto nella domanda: questo è un problema di farmaci generici la cancellazione e lo fa andare via se si aggiunge un metodo fittizio riferimento quella classe. – unbeli

0

Ho avuto un problema simialr con appc in cui volevo scavalcare alcuni POJOS generato per client JAX-WS.

Ho usato questa opzione (-output) per generare l'output in un esploso directory invece di un cliente jar.Do una copia formica dei file .class necessari per la directory del client e creare un barattolo di tua scelta.

Si può vedere questa opzione se si fa 'weblogic.appc java' eseguire setEnv.cmd

-output Specifica un archivio di uscita alternativo o directory. Se non impostato, l'output sarà inserito nell'archivio o nella directory di origine.

controllo se questo funziona

Problemi correlati