2010-07-08 7 views
14

Je voulais utiliser l'annotation JAXB dans ma classe comme ceci:Comment utiliser les annotations JAXB du côté client pour GWT?

@XmlRootElement 
public class ItemExtension implements Serializable { 

Mais GWT se plaint quand je le mets dans le côté client.

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

Y at-il une solution de contournement ou est-ce que je fais quelque chose de mal?

Répondre

0

Vous pourriez trouver une solution viable ici: GWT with JPA

10

J'ai un projet qui utilise l'entité classes avec les annotations JPA et JAXB dans le code GWT côté client . Reportez-vous à la section "Remplacement d'une implémentation de package par une autre" dans le GWT Documentation.

Supposons que votre module se trouve dans le package com.example.app. Vous devrez recréer [1] toutes les classes d'annotation JAXB dans un nouveau package, en particulier com.example.app.jre.java.xml.bind.annotation; dans votre fichier XML de module, vous ajoutez ensuite <super-source path="jre" /> et vous êtes défini.

Notez que vous n'avez pas besoin de distribuer les fichiers de classe dans ce paquet, ils sont nécessaires uniquement dans l'intérêt du compilateur GWT.

[1]: Vous pouvez les copier et ajuster toutes les références de paquet.

+0

Si je propose simplement javax.xml.bind.annotation * Je reçois des erreurs lors de la compilation. Un exemple - 'DOMHandler' -' Aucun code source n'est disponible pour le type javax.xml.transform.Result'. Est-ce que je manque quelque chose? –

+0

Vous avez besoin d'un code source complet pour toutes les classes/interfaces/annotations référencées à partir des sources. Copiez également sur la source pour 'javax.xml.transform.Result'. –

+0

Merci - J'avais copié tout sur javax.xml.bind mais j'avais juste besoin de le limiter à mes dépendances. Utilisez-vous ceci pour analyser XML ou quelque chose de différent? J'essaye d'analyser XML et suis comment les problèmes de dépendance si je suis du côté serveur unmarshal (difficultés sérialisant la classe de jaxb) ou côté de client (problèmes supplémentaires de dépendance). –

1

J'ai utilisé cette bibliothèque pour faire l'analyse syntaxique de JAXB à partir d'un client GWT

http://code.google.com/p/gwtjaxb/

Il n'est pas un générateur JAXB complet, mais il couvre tout ce que je dois.

0

j'ai pu résoudre mes problèmes de compilateur GWT en excluant le produit JAXB ObjectFactory de la source dans le fichier XML du module GWT:.

<source path="model"> 
    <exclude name="**/ObjectFactory.*" /> 
</source> 
Questions connexes