2010-07-15 8 views
6

ich eine EJB haben eine Liste meiner eigenen ValidationMessage Objekte Rückkehr:weblogic appc: include generische Argumente in der ejb-Client jar

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

Ich Erzeugung EJB-Client-JAR mit WebLogic appc Dienstprogramm. Das Problem ist, dass es keine ValidationMessage Klasse in der Client-JAR enthält. Vielleicht sieht es die Abhängigkeit zu dieser Klasse nicht, weil es nur den kompilierten Code betrachtet, wenn generische Information bereits gelöscht ist.
Wenn ich eine weitere Dummy-Methode hinzufügen, die diese Klasse direkt an die Schnittstelle zurückgibt, ist alles in Ordnung.

Meine Frage ist: Gibt es eine Möglichkeit, das zu beheben, ohne eine Dummy-Methode hinzuzufügen? Gibt es eine Möglichkeit zu kontrollieren, was von App in der Client-JAR enthalten ist?

Antwort

0

Dies ist keine und tatsächliche Antwort, und ich habe keine Kenntnis von WebLogic oder dem Dienstprogramm appc.

Das sieht wie ein generics Löschungsproblem aus. Der tatsächliche Rückgabetyp von der validateFile()-Methode ist der Rohtyp List; Während es in der Klassendatei zusätzliche Informationen gibt, um die Typparameter zu rekonstruieren, werden sie von einigen Tools nicht überprüft.

Ich sage voraus, dass dieses Problem verschwinden wird, wenn Sie auch die fehlende Klasse in einem Methodenparameter referenzieren.

+0

das ist genau das, was ich in der Frage geschrieben: Dies ist ein Generika Löschung Problem, und es geht weg, wenn Sie eine Dummy-Methode hinzufügen, dass die Klasse verweisen. – unbeli

0

Ich habe ein simialr-Problem mit appc bekommen, wo ich einige der POJOS überschreiben wollte, die es für JAX-WS-Client erzeugte.

habe ich diese Option (-Ausgabe) die Ausgabe in eine explodierte Verzeichnis anstelle eines Client jar.Do eine Ameise Kopie Ihrer erforderlichen .class-Dateien auf dem Client-Verzeichnis zu erstellen, und ein Glas eigene erstellen.

Sie können diese Option sehen, wenn Sie ‚java weblogic.appc‘ do ausführen setEnv.cmd

-Ausgang Gibt eine alternative Ausgabe Archiv oder Verzeichnis. Wenn nicht gesetzt, wird die Ausgabe im Quellarchiv oder -verzeichnis abgelegt.

überprüfen, ob das funktioniert