vendredi 19 août 2011

GWT et Eclipse : Unable to find a module

Problème :

Lors du lancement de mon application, j'ai l'erreur suivante :


Loading modules
   de.toolforge.googlechartwrapper.googlechartwrapper
      [ERROR] Unable to find 'de/toolforge/googlechartwrapper/googlechartwrapper.gwt.xml' on your classpath; could be a typo, or maybe you forgot to include a classpath entry for source?
[ERROR] shell failed in doStartup method

Cependant, je n'ai aucune référence à ce module dans mon code (C'est un module que j'ai effacé).

Solution :

Run -> Run Configurations
Puis il faut aller dans votre application google dans l'onglet Arguments.

Il faut ensuite effacer le module qui pose problème.Dans mon cas :   de.toolforge.googlechartwrapper.googlechartwrapper

jeudi 18 août 2011

GWT : Erreur de compilation avec une Map



Problème :

Dans votre code, vous déclarez Map<Integer, Integer> map = new HashMap<Integer, Integer>
et lors de la compilation vous avez l'erreur suivante :

         [ERROR] Line 23: No source code is available for type com.google.gwt.dev.util.collect.HashMap<K,V>; did you forget to inherit a required module?


Solution :

Les collections du tpe Map fonctionne avec des Objects.Or la class Object n'est pas serializable.
Il faut donc créer une classe qui va contenir votre map en lui passant @gwt.typeArgs <java.lang.Integer,java.lang.Integer>
dans les commentaires pour définir ce que va contenir votre map :


public class ChartData implements IsSerializable {


 /**
  * This field is a Map that must always contain Strings as its keys and
  * values.
  * 
  * @gwt.typeArgs <java.lang.Integer,java.lang.Integer>
  */
 public Map data;
 
 public ChartData() {
 }
}


Ensuite vous pouvez utiliser votre map comme ceci :

CharData charData = new CharData();
charData.data.put(12,13);

Référence :
http://www.gwtapps.com/doc/html/com.google.gwt.doc.DeveloperGuide.RemoteProcedureCalls.SerializableTypes.html

mardi 16 août 2011

[WARN] Candidate class for JDOQL single-string query (Class) could not be resolved Class



Problème :

[WARN] Candidate class for JDOQL single-string query (User) could not be resolved User

Solution :

Je n'avais pas encore instancié ma classe User.En fait, J'appelais ma méthode avec une fonction statique comme ceci :
User.myMethod();

Et dans my Method, je faisais ma requête :


PersistenceManager pm = PMF.get().getPersistenceManager();
Query query = pm.newQuery(User.class);


Pour résoudre le problème, j'ai fait ceci :


User myUser = new User();
myUser.myMethod(); // myMethod n'est plus statique

vendredi 12 août 2011

Comment logger avec GWT ?


Dans votre fichier test.gwt.xml file, il faut ajouter :

 <inherits name="com.google.gwt.logging.Logging"/>
  <set-property name="gwt.logging.logLevel" value="INFO"/>          # To change the default logLevel
  <set-property name="gwt.logging.enabled" value="TRUE"/> 

Dans votre fichier java :

  • Import du logger :

import java.util.logging.Logger;

  • Déclaration de la variable logger :

private static final Logger logger = Logger.getLogger(WeightManager.class.getName());

  • Appel des méthodes de logs :

logger.info("========>TEST !!!!");




Remarque : Cela fonctionne uniquement dans la partie client.Je ne sais pas encore comment faire des logs dans la partie server.

dimanche 7 août 2011

JBOSS 7 et JEE 6 un bon moyen de mettre à jour ses connaissances


Si vous souhaitez tester les nouveautés de JEE6 de manière simple et rapide, je vous conseil de télécharger JBOSS 7 et les exemples de la documentation (appli hello world, login ...).La documentation est bien faite et en plus vous utiliserez Maven 3.

vendredi 5 août 2011

Java 7 disponible pour le plugin compiler de Maven




Ce matin j'ai essayé de compiler mon projet avec Maven et le jdk7 et cela marche !



mercredi 3 août 2011

Bug sur Java 7


En ce moment, on parle beaucoup d'un bug sur Java 7 et la communauté s'enflamme un peu.Je suis tombé sur un commentaire qui résume tout  :

- oui java 7 est buggé sur l’optimisation des boucles
- oui cela pose problème avec lucene et surement quelques autres projets
- non il ne faut pas évité java 7 a tout prix
- oui il faut être prudent et attendre avant une migration en prod et cela vaut pour toutes nouvelles versions d’un produit
- oui il est possible de désactiver les optimisation pour retrouver un java 7 non buggé.
http://www.infoq.com/news/2011/08/java7-hotspot

ref : http://www.silicon.fr/victime-de-bugs-handicapants-java-7-est-rejete-par-la-communaute-apache-57691.html