2010-07-08 12 views
14

Ich wollte die jaxb Anmerkung in meiner Klasse wie folgt verwenden:Wie Sie JAXB-Annotationen auf der Clientseite für GWT verwenden?

@XmlRootElement 
public class ItemExtension implements Serializable { 

Aber GWT beschwert, wenn ich es in der Client-Seite gestellt.

[ERROR] Line 4: The import javax.xml.bind cannot be resolved 
     [ERROR] Line 14: XmlRootElement cannot be resolved to a type 

Gibt es einen Workaround oder mache ich etwas falsch?

Antwort

0

Sie eine tragfähige Lösung hier finden könnte: GWT with JPA

10

ich ein Projekt, das Unternehmen verwendet Klassen mit JPA- und JAXB-Annotationen im clientseitigen GWT-Code . Siehe den Abschnitt "Überschreiben einer Paketimplementierung durch eine andere" in GWT Documentation.

Angenommen, Ihr Modul befindet sich im Paket com.example.app. Sie müssen [1] alle JAXB-Annotation-Klassen in einem neuen Paket neu erstellen, insbesondere com.example.app.jre.java.xml.bind.annotation; In Ihrer Modul-XML-Datei fügen Sie dann <super-source path="jre" /> hinzu und Sie sind fertig.

Beachten Sie, dass Sie die Klassendateien in diesem Paket nicht verteilen müssen, sie werden nur für den GWT-Compiler benötigt.

[1]: Sie können sie kopieren und alle Paketreferenzen anpassen.

+0

Wenn ich nur javax.xml.bind.annotation bewegen * Ich bekomme Fehler beim Kompilieren. Ein Beispiel - 'DOMHandler' -' Für den Typ javax.xml.transform.Result ist kein Quellcode verfügbar. Fehle ich etwas? –

+0

Sie benötigen vollständigen Quellcode für alle Klassen/Interfaces/Annotationen, auf die von den Quellen verwiesen wird. Kopieren Sie auch die Quelle für 'javax.xml.transform.Result'. –

+0

Danke - Ich habe alles von javax.xml.bind kopiert, musste es aber nur auf meine Abhängigkeiten beschränken. Verwenden Sie dies, um XML oder etwas anderes zu analysieren? Ich versuche, XML zu analysieren, und bin, wie Abhängigkeitsprobleme haben, wenn ich entweder serverseitige (Schwierigkeiten beim Serialisieren der Jaxb-Klasse) oder Client-Seite (weitere Abhängigkeitsprobleme) entpacken. –

0

konnte ich meine GWT-Compiler Probleme lösen, indem die erzeugten JAXB Object von der Quelle in der GWT-Modul XML ohne.

<source path="model"> 
    <exclude name="**/ObjectFactory.*" /> 
</source> 
Verwandte Themen