2016-11-30 1 views
0

GWT compilera-t-il ma classe si une annotation personnalisée créée sous le package serveur est référencée par une classe partagée?Est-ce que GWT compilera si une annotation du paquet du serveur est utilisée dans le code client?

Je dois annoter mes classes de type d'enregistrement avec une annotation @MyRecord avec quelques attributs. Alors que je peux obtenir les valeurs d'attribut côté serveur en utilisant la réflexion. Étant donné que la classe de type d'enregistrement est sous-partagée et utilisée dans le code serveur & client.

Remarque: @MyRecord est sous le serveur qui ne peut pas être compilé par le compilateur GWT.

Y aura-t-il des problèmes ou d'autres moyens? S'il vous plaît aider.

+1

Cela ressemble à une de ces questions que vous pourriez avoir d'abord essayé, et then a demandé « pourquoi » ou « pourquoi pas » en fonction de ce que vous avez découvert. –

+1

Salut @ColinAlworth, je m'excuse et merci de m'avoir sorti de la paresse (je n'ai pas été configuré un espace de travail GWT parce que je n'ai pas commencé à travailler et à l'étape de la planification). Après avoir configuré l'espace de travail GWT et essayé la même chose, le résultat est ** Cela fonctionne! **. Merci beaucoup. – karthik

Répondre

1

Je poste ceci après l'avoir essayé moi-même.
J'ai les classes ci-dessous/interfaces & une annotation dans mon projet GWT.

agazhi 
    client 
     Agazhi.java 
     AgazhiService.java 
     AgazhiServiceAsync.java 
    server 
     AgazhiServiceImpl.java 
     Soldier.java 
     Staff.java 
    shared 
     Commander.java 
    Agazhi.gwt.xml 

Commander est mon type d'enregistrement, @Soldier est une annotation et Staff est une interface.
objet de la classe Commander est passé du client au serveur throught service.

Test Cases:

  • Si je compile le module avec @Soldier annotation en classe commandant cela fonctionne.
  • Si je compile avec Staff interface implémentée sur Commander classe, il donne l'erreur

No source code is available for type agazhi.server.Staff; did you forget to inherit a required module?

Merci à tous pour votre temps précieux.

0

Si vous souhaitez compiler avec l'interface Staff implémentée sur la classe Commander, vous devrez peut-être déplacer Staff.java vers le package partagé, afin que le compilateur GWT puisse le traduire en JavaScript. De plus, Staff.java ne devrait pas dépendre d'autres classes qui ne sont pas traduisibles en compilateur GWT.

Pour plus d'informations, s'il vous plaît se référer au document XML du module: http://www.gwtproject.org/doc/latest/DevGuideOrganizingProjects.html#DevGuideModuleXml