2010-07-08 16 views
14

ho voluto usare l'annotazione JAXB nella mia classe in questo modo:Come utilizzare le annotazioni JAXB sul lato client per GWT?

@XmlRootElement 
public class ItemExtension implements Serializable { 

Ma GWT si lamenta quando ho messo nel lato client.

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

C'è una soluzione alternativa o sto facendo qualcosa di sbagliato?

risposta

0

Si potrebbe trovare una soluzione praticabile qui: GWT with JPA

10

Ho un progetto che utilizza entità classi con annotazioni JPA e JAXB nel codice GWT lato client . Vedi la sezione "Sovrascrivere un'implementazione di un pacchetto con un'altra" nello GWT Documentation.

Supponiamo che il modulo sia nel pacchetto com.example.app. Sarà necessario ricreare [1] tutte le classi di annotazione JAXB in un nuovo pacchetto, in particolare com.example.app.jre.java.xml.bind.annotation; nel file XML del tuo modulo, quindi aggiungi <super-source path="jre" /> e sei pronto.

Nota che non è necessario distribuire i file di classe in quel pacchetto, sono necessari unicamente per il compilatore GWT.

[1]: è possibile copiarli e regolare tutti i riferimenti del pacchetto.

+0

Se mi basta spostare javax.xml.bind.annotation * ricevo errori durante la compilazione. Un esempio - 'DOMHandler' -' Nessun codice sorgente disponibile per il tipo javax.xml.transform.Result'. Mi sto perdendo qualcosa? –

+0

È necessario il codice sorgente completo per tutte le classi/interfacce/annotazioni a cui si fa riferimento dalle origini. Copia anche il codice sorgente per 'javax.xml.transform.Result'. –

+0

Grazie - Ho copiato tutto da javax.xml.bind ma avevo bisogno di limitarlo alle mie dipendenze. Stai usando questo per analizzare xml o qualcosa di diverso? Sto cercando di analizzare XML e sono come i problemi di dipendenza se io o lato server unmarshal (difficoltà serializzare la classe jaxb) o lato client (ulteriori problemi di dipendenza). –

0

sono stato in grado di risolvere i miei problemi del compilatore GWT escludendo la generato JAXB ObjectFactory dalla sorgente nel modulo GWT XML:.

<source path="model"> 
    <exclude name="**/ObjectFactory.*" /> 
</source> 
Problemi correlati