Un petit blog principalement sur l'univers du développement pour partager aussi bien des astuces pratiques utiles au quotidien mais également réfléchir sur les évolutions et perspectives de l'informatique.
vendredi 28 octobre 2011
Knowledgeblackbelt
Si vous souhaitez valider vos connaissances en Java, il existe un autre moyen que la certification.
Il s'agit de Knowledgeblackbelt.
Le principe est simple : vous passez des examens et si vous réussissez vous obtenez des points et ces points vous permettent d'obtenir des ceintures.
L'avantage c'est qu'il y a beaucoup d'examens (JAVA SE, Design Pattern, JPA ...).Un autre avantage, c'est qu'il y a des cours encadrés par un coach.Ainsi, vous pouvez poser pleins de questions !
mercredi 24 août 2011
The content of element type must match
Problem :
J'ai eu l'erreur suivante :
The content of element type "filter" must match "(icon?,filter-name,display-name?,description?,filter-class,init-param*)".
Voici un extrait du fichier web.xml :
<filter>
<display-name>RichFaces Filter</display-name>
<filter-name>richfaces</filter-name>
<filter-class>org.ajax4jsf.Filter</filter-class>
</filter>
Solution :
En faite, la solution est dans le message.On doit déclarer les balises de filter-mappings dans un certain ordre.
Il faut mettre en premier filter-name puis url-pattern ou servlet name.
So you have to correct like that :
<filter>
<filter-name>richfaces</filter-name>
<display-name>RichFaces Filter</display-name>
<filter-class>org.ajax4jsf.Filter</filter-class>
</filter>
Une remarque importante :
Cette erreur est apparue car j'avais mis dans le fichier web.xml la dtd 2.3 :
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
Cependant, il ne s'agit pas de la dernière dtd. Apparement, pour corriger l'erreur, il faut écrire le début de son web.xml comme ceci :
<?xml version="1.0"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
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
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.
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.
Inscription à :
Articles (Atom)