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.
samedi 22 décembre 2012
Tutoriels sur JAVA 8
Voici un lien intéressant vers 3 articles très complet sur JAVA 8.Il vous présente les lambda, les virtual méthodes.Il aborde la notion de mixin et vous montre l’intérêt des nouveautés de JAVA 8.
Ces 3 articles sont disponibles sur : http://blog.soat.fr/category/java/
A mon avis, c'est un bon mpoyen pour se familiariser avec JAVA 8.
A noter la version de JAVA 8 est disponible en early access sur le site d'oracle.
lundi 10 décembre 2012
Publication d'un article sur CraSH (application à la visualisation d'un cache ehcache)
J'ai publié un article sur CRaSH sur developpez.com.
Voici le lien dirct vers l'article : http://damienrieu.developpez.com/article/crash_ehcache_spring/ et le lien sur http://www.developpez.com/
Pour ceux qui ne connaissent pas, voici une copie de l'introduction de l'article :
N'hésitez pas à me poster des commentaires !
Voici le lien dirct vers l'article : http://damienrieu.developpez.com/article/crash_ehcache_spring/ et le lien sur http://www.developpez.com/
Pour ceux qui ne connaissent pas, voici une copie de l'introduction de l'article :
CRaSH permet de se connecter à une JVM en mode Shell puis d'exécuter des commandes directement sur cette JVM. Ainsi, nous allons accéder à un certain nombre de commandes prédéfinies (exemple la commande thread, jdbc, java…). Si vous souhaitez avoir un aperçu rapide sur les commandes disponibles et leurs utilisations, vous pouvez les tester directement sur le site de démo : Démo en ligne
Une des grandes forces de CRaSH est que l'on peut aussi définir ses propres commandes Shell par programmation. Il est alors possible de réaliser des commandes spécifiques à nos besoins !
Dans ce tutoriel, nous allons présenter CRaSH grâce à un cas pratique. Pour cela, nous allons réaliser une commande CRaSH d'affichage d'un cache puis nous intègrerons cette commande dans notre application.
Nous montrerons ensuite comment utiliser cette commande à l'aide de CRaSH.
L'application démo a été réalisée avec Spring. Dans cet article, nous montrerons à quel point il est facile d'intégrer CRaSH dans une application Spring.
N'hésitez pas à me poster des commentaires !
samedi 10 novembre 2012
IntelliJ : raccourcis clavier avec KDE
J'utilise depuis peu IntelliJ et je constate que certains raccourcis clavier ne fonctionne pas sous KDE.
C'est le cas des raccourcis ALT + NUM (exemple ALT + 1 qui ouvre la vue projet).
J'ai donc décider de remplacer ALT + 1 par ALT + NUMPAD.
Pour cela, il suffit d'aller dans File -> Settings -> Keymaps
Voici un document que je vais essayer de remplir avec les raccourcis claviers : ici
mercredi 17 octobre 2012
new Blog( perso );: Non, JigSaw n'est pas mort !
new Blog( perso );: Non, JigSaw n'est pas mort !: Le retrait de jigsaw de la roadmap de Java 9 avait précédé JavaOne, aussi j’ai voulu voir ce qui serait présenté lors de cette session. On c...
mardi 16 octobre 2012
Git reminder
Just a git reminder to work with github ...
git checkout master
git fetch upstream
git merge upstream/master
git checkout dashboard
git merge upstream/dashboard
git push --set-upstream origin dashboard
Merge
git mergetool -t kdiff3
git mergetool -t meld
git config --global merge.tool kdiff3
git svn rebase --> "file.abs: needs update"
git stash (save local changes away)
git stash list (have a look at what is stashed)
git svn rebase
git svn dcommit
git stash apply (back to where we were before)
Clean d'un repository :
For example,git fetch upstream
git checkout master
git reset --hard upstream/master
git push origin master --force
Revert
- git checkout path/to/file
- Pour une working copy entière: git reset --hard
Clean de la branch master du repo :
1/ recupérer le dernier master de crash
git checkout crash master
2/ checkouter ta branche master
git checkout master
3/ reinitialiser ta branche master avec la branche master de crash
git reset --hard crash/master
4/ pousser ça dans ton repository en forçant : ça va réécrire l'historique de la branche master de ton repository sur github
c est une operation destructive (mais nécéssaire parfois) qui peut te faire perdre des commits
git push --force origin master
I love Guava !
Guava est une librairie google sympa (supervisé par Josh Bloch !) avec pleins de bonnes choses dedans !
C'est vraiment une librairie qui vaut le détour.Voici un blog consacré à cette librairie.Il présente les différents avantages de cette librairie :
http://blog.developpez.com/guava/
Remarque : Les fonctionnalités de Java 7 puis Java 8 risque de diminuer l'intérêt de cette librairie ...
lundi 8 octobre 2012
Closures Lambda et Java 8
Voici une bonne introduction aux Closures (projet Lambda) de Java 8.Par contre, c'est en anglais mais cela donne une bonne idée de ce qui nous attends l'année prochaine :
http://java.amitph.com/2012/08/at-first-sight-with-closures-in-java.html
samedi 6 octobre 2012
Junit @Rule
Récemment, je suis tombé sur un article intéressant sur Junit et l’annotation @Rule que je ne connaissais pas.Dans cet article, je vais vous présenter le principe de fonctionnement.
En faite, dans les version précédentes de Junit, on était obligé de déclarer @SetUp et @TearDown pour chaque classe de test.Dans les versions récentes de Junit, il est maintenant possible de définir ses propres rules avec l’annotation @Rule.Autrement dit, durant le déroulement de votre test, vous allez pouvoir agir dessus.
Pour vous donnez une idée, voici quelques exemples de Rules standard :
- ExpectedException: vérifie qu’une exception est levée (généralise @Test(expected=...) à une classe de test)
- Timeout: vérifie qu’un test ne dépasse pas une certaine durée (généralise @Test(timeout=...) à une classe de test
- ExternalResource: base pour gérer une ressource: ouvrir/fermer une connexion par exemple
- TemporaryFolder: créer/détruit un dossier temporaire pour les tests qui produisent des fichiers
- TestWatchman: base pour observer l’exécution d’un test sans intervenir
- TestName: donne accès au nom du test depuis la méthode de test
- Verifier: base pour vérifier l’état de l’objet de test
Voici les deux liens qui m’ont permis de découvrir cette nouvelle notion :
http://blog.objetdirect.com/divers/quoi-de-neuf-chez-junit
http://www.dzone.com/links/r/junit_rules_3.html
vendredi 5 octobre 2012
Can't import an existing Maven Project avec Eclipse Juno et Maven Plugin 1.1.0
Problem
Je fais :
Import -> Maven -> Existing Maven Project
Puis je choisis mon projet sur le disk :
Je clic Next.J'obtiens l'écran Maven Selector Plugin Screen :
Si je clic sur Finish, j'attends un long moment et j'ai l'erreur : Problem occured while performing ...
Cela est du à un problème réseau sur une dépendance et le problème c'est que je n'ai rien importer dans Eclipse.
Solution
Dans Maven Selector Plugin Screen, il suffit de cliquer sur resolve All Later button.cela me permet d'avoir mon projet importer.
Je fais :
Import -> Maven -> Existing Maven Project
Puis je choisis mon projet sur le disk :
Je clic Next.J'obtiens l'écran Maven Selector Plugin Screen :
Si je clic sur Finish, j'attends un long moment et j'ai l'erreur : Problem occured while performing ...
Cela est du à un problème réseau sur une dépendance et le problème c'est que je n'ai rien importer dans Eclipse.
Solution
Dans Maven Selector Plugin Screen, il suffit de cliquer sur resolve All Later button.cela me permet d'avoir mon projet importer.
mercredi 3 octobre 2012
org.springframework.web.servlet.PageNotFound No mapping found for HTTP request with URI
Problème
J'ai rencontré l'erreur suivante Jboss (7.1.1) avec une application utilisant Spring 3.1.1 :
14:35:03,357 WARN [org.springframework.web.
Solution
Il suffit d'ajouter : <mvc:resources mapping="/resources/**" location="/resources/" />
http://stackoverflow.com/
samedi 29 septembre 2012
Throw d’une exception sans try catch ou throws !
Je suis tombé sur un article surpenant :
http://www.dzone.com/links/r/throw_checked_exceptions_like_runtime_exceptions.html
Etrange ...
http://www.dzone.com/links/r/throw_checked_exceptions_like_runtime_exceptions.html
Etrange ...
jeudi 27 septembre 2012
Spring 3.1.1 and ehcache demo application
Je viens juste de commiter une nouvelle version d'une application démo
qui fonctionne sous JBoss 7 avec Spring 3.1.1 et Ehcache.
Autre chose, cette application fonctionne avec Crash (a shell to extend the JVM)
Allez voir http://julienviet.com/crash/ pour plus d'information.
All source code is available at https://github.com/drieu/sandbox
Spring cache
Voici un lien sur les annotations Spring : :http://www.dzone.com/links/r/spring_31_caching_and_cacheevict.html
C’est bien expliqué avec des petits exemples pratiques.
C’est bien expliqué avec des petits exemples pratiques.
mercredi 26 septembre 2012
Fuzz Box: Générer des diagrammes UML à partir d'Eclipse
Fuzz Box: How to generate UML Diagrams from Java code in Ecl...
C'est un petit article qui présente un plugin Eclipse (ObjectAid ) pour générer
des diagrammes UML à partir de JAVA.
C'est un petit article qui présente un plugin Eclipse (ObjectAid ) pour générer
des diagrammes UML à partir de JAVA.
dimanche 23 septembre 2012
Moteur de recherche dans la javadoc ?
Vous voulez effectuer une recherche dans la javadoc rapidement ?
Voici un moteur de recherche dans la javadoc :
http://javasearch.developpez.com/index.php?cat=1
Pourquoi le site javasearch.developpez.com
Comme tout programmeur en Java, j'ai régulièrement besoin de me plonger dans la documentation.La javadoc est bien faite et plutôt claire. Par contre, il n'existe aucun moteur de recherche simple permettant de trouver facilement les classes ou les méthodes recherchées.Lassé d'utiliser le "CTRL+F" de mon explorateur pour trouver le bon mot dans la liste des 2700 classes,j'ai décidé d'indexer la totalité de la documentation java (plus de 200 Mo de fichiers html !!!) pour créer un moteur de recherche rapide et simple.
Remarque : Un seul hic, il n’y a pas la javadocs de Java 7.
samedi 22 septembre 2012
Vous voulez apprendre groovy ?
Si vous voulez apprendre Groovy sans acheter de livre et d'une manière un peu fun,
voici un lien qui va vous y aider : http://groovykoans.org/
En faite, vous téléchargez une archive qui contient qui contient des exercises.
Ses exercises se présentent sous la forme de test unitaires qui sont en échec.
A vous de corriger.Pour cela chaque méthode de test contient toutes les explications
pour résoudre l'exercise.L'apprentissage se fait progressivement.
Pour ma part, je connais un peu Groovy mais sans plus.J'avais un peu du mal à m'y mettre
et cette méthode m'aide bien.
Bon ... Je sais que j'ai mes exercices à faire !
vendredi 21 septembre 2012
Spring tutorial series
Si vous êtes intéressé par Spring, voici un lien intéressant :
http://www.javacodegeeks.com/2012/09/introduction-to-spring-tutorial-series.html
mercredi 19 septembre 2012
Crash Spring et ehcache
Voici un petit retour d'expérience sur l'utilisation de Crash.
J'ai testé Crash avec une application Spring qui met des valeurs en Cache.Cette application
est déployée sur un serveur Jboss 7.1.1.A l'aide de Crash, j'accède à l'appli en ligne
de commande et j'exécute un script d'affichage du cache.Cela fonctionne très bien.
Pour ceux que ça intéresse, j'ai mis le code source sur GitHub.(https://github.com/drieu/sandbox)
mardi 18 septembre 2012
java.lang.NoSuchMethodError: org.springframework.core.convert.converter.ConverterRegistry.addConverter(Ljava/lang/Class;Ljava/lang/Class;Lorg/springframework/core/convert/converter/Converter;)V
Problème :
Au déploiement de mon war dans JBoss, j’avais l’erreur suivante :
14:11:53,425 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/sandbox-0.0.1-SNAPSHOT]] (MSC service thread 1-1) Exception lors de l'envoi de l'évènement contexte initialisé (context initialized) à l'instance de classe d'écoute (listener) fr.dr.sandbox.listener.CacheListener: java.lang.NoSuchMethodError: org.springframework.core.convert.converter.ConverterRegistry.addConverter(Ljava/lang/Class;Ljava/lang/Class;Lorg/springframework/core/convert/converter/Converter;)V
at org.springframework.core.convert.support.DefaultConversionService.addScalarConverters(DefaultConversionService.java:62) [spring-core-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.core.convert.support.DefaultConversionService.addDefaultConverters(DefaultConversionService.java:53) [spring-core-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.core.convert.support.DefaultConversionService.<init>(DefaultConversionService.java:42) [spring-core-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.core.env.AbstractPropertyResolver.<init>(AbstractPropertyResolver.java:44) [spring-core-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.core.env.PropertySourcesPropertyResolver.<init>(PropertySourcesPropertyResolver.java:42) [spring-core-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.core.env.AbstractEnvironment.<init>(AbstractEnvironment.java:101) [spring-core-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.core.env.StandardEnvironment.<init>(StandardEnvironment.java:54) [spring-core-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.<init>(AbstractBeanDefinitionReader.java:57) [spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.<init>(XmlBeanDefinitionReader.java:135) [spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:83) [spring-web-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130) [spring-context-3.0.5.RELEASE.jar:3.0.5.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:467) [spring-context-3.0.5.RELEASE.jar:3.0.5.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:397) [spring-context-3.0.5.RELEASE.jar:3.0.5.RELEASE]
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:385) [spring-web-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:284) [spring-web-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111) [spring-web-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:3392) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.core.StandardContext.start(StandardContext.java:3850) [jbossweb-7.0.13.Final.jar:]
at org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:90) [jboss-as-web-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [rt.jar:1.6.0_18]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [rt.jar:1.6.0_18]
at java.lang.Thread.run(Thread.java:619) [rt.jar:1.6.0_18]
Solution :
En regardant de près dans le message d’erreur, il s’avère que j’avais des versions de spring différentes (3.0.5.RELEASE et 3.1.1.RELEASE).
En fait, j'utilise la version 3.0.5.RELEASE dans mon pom.xml et j’ai introduit une librairie qui utilisent la version 3.1.1.RELEASE.
J’ai donc upgradé toutes les version de spring de mon pom.xml à 1.1.1.RELASE pour résoudre mon problème.
Au déploiement de mon war dans JBoss, j’avais l’erreur suivante :
14:11:53,425 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/sandbox-0.0.1-SNAPSHOT]] (MSC service thread 1-1) Exception lors de l'envoi de l'évènement contexte initialisé (context initialized) à l'instance de classe d'écoute (listener) fr.dr.sandbox.listener.CacheListener: java.lang.NoSuchMethodError: org.springframework.core.convert.converter.ConverterRegistry.addConverter(Ljava/lang/Class;Ljava/lang/Class;Lorg/springframework/core/convert/converter/Converter;)V
at org.springframework.core.convert.support.DefaultConversionService.addScalarConverters(DefaultConversionService.java:62) [spring-core-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.core.convert.support.DefaultConversionService.addDefaultConverters(DefaultConversionService.java:53) [spring-core-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.core.convert.support.DefaultConversionService.<init>(DefaultConversionService.java:42) [spring-core-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.core.env.AbstractPropertyResolver.<init>(AbstractPropertyResolver.java:44) [spring-core-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.core.env.PropertySourcesPropertyResolver.<init>(PropertySourcesPropertyResolver.java:42) [spring-core-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.core.env.AbstractEnvironment.<init>(AbstractEnvironment.java:101) [spring-core-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.core.env.StandardEnvironment.<init>(StandardEnvironment.java:54) [spring-core-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.<init>(AbstractBeanDefinitionReader.java:57) [spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.<init>(XmlBeanDefinitionReader.java:135) [spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:83) [spring-web-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130) [spring-context-3.0.5.RELEASE.jar:3.0.5.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:467) [spring-context-3.0.5.RELEASE.jar:3.0.5.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:397) [spring-context-3.0.5.RELEASE.jar:3.0.5.RELEASE]
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:385) [spring-web-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:284) [spring-web-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111) [spring-web-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:3392) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.core.StandardContext.start(StandardContext.java:3850) [jbossweb-7.0.13.Final.jar:]
at org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:90) [jboss-as-web-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [rt.jar:1.6.0_18]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [rt.jar:1.6.0_18]
at java.lang.Thread.run(Thread.java:619) [rt.jar:1.6.0_18]
Solution :
En regardant de près dans le message d’erreur, il s’avère que j’avais des versions de spring différentes (3.0.5.RELEASE et 3.1.1.RELEASE).
En fait, j'utilise la version 3.0.5.RELEASE dans mon pom.xml et j’ai introduit une librairie qui utilisent la version 3.1.1.RELEASE.
J’ai donc upgradé toutes les version de spring de mon pom.xml à 1.1.1.RELASE pour résoudre mon problème.
lundi 17 septembre 2012
Podcast Java
Voici un podcast que je connaissais pas : http://javapubhouse.libsyn.com/
A voir si il est bien ...
N'hésitez pas à mettre des commentaires sur les podcast que vous connaissez.
jk's blog: Duck typing in Java ?
Je suis tombé sur un article intéressant.En effet, je ne connaissais pas le duck typing.Cet article m'a permis de découvrir cette notion :
jk's blog: Duck typing in Java ? Well, not exactly:
jk's blog: Duck typing in Java ? Well, not exactly:
vendredi 14 septembre 2012
ScriptRoom: Creating and configuring a MySQL DataSource in GlassFish Application Server.
ScriptRoom: Creating and configuring a MySQL DataSource in GlassFish Application Server.: http://dev.mysql.com/downloads/connector/j/3.1.html
crash Could not start CRaSSHD Failed to register BouncyCastle as the defaut JCE provider
Problème :
J’ai déployé crash.war dans JBoss et au démarrrage, j’avais l’erreur suivante : Could not start CRaSSHD
10:22:31,335 INFO [SSHPlugin] Booting SSHD
10:22:32,826 INFO [SecurityUtils] Trying to register BouncyCastle as a JCE provider
10:22:36,861 SEVERE [SecurityUtils] Failed to register BouncyCastle as the defaut JCE provider
10:22:36,862 SEVERE [SSHLifeCycle] Could not start CRaSSHD
java.lang.RuntimeException: Failed to register BouncyCastle as the defaut JCE provider
…
Caused by: java.security.NoSuchProviderException: JCE cannot authenticate the provider BC
at javax.crypto.SunJCE_b.a(DashoA13*..)
at javax.crypto.KeyAgreement.getInstance(DashoA13*..)
at org.apache.sshd.common.util.SecurityUtils$BouncyCastleRegistration.run(SecurityUtils.java:97)
at org.apache.sshd.common.util.SecurityUtils.register(SecurityUtils.java:77)
... 79 more
Caused by: java.util.jar.JarException: Cannot parse jar:file:/opt/jboss/jboss-eap-5.1/jboss-as/server/all/deploy/crash.war!/WEB-INF/lib/bcprov-jdk16-1.46.jar
Solution :
- Récupérer les fichiers (Dans mon cas bcprov-jdk15on-147.jar et bcprov-ext-jdk15on-147.jar).
http://www.bouncycastle.org/latest_releases.html
- Copier ses fichiers (e.g:bcprov-jdk15on-147.jar et bcprov-ext-jdk15on-147.jar) dans /opt/jdk/jdk1.6.0_18/jre/lib/ext
- vi /path_to_your_jvm/jre/lib/security/java.security et ajouter la ligne security.provider.9=org.bouncycastle.jce.provider.BouncyCastleProvider
security.provider.1=sun.security.provider.Sun
security.provider.2=sun.security.rsa.SunRsaSign
security.provider.3=com.sun.net.ssl.internal.ssl.Provider
security.provider.4=com.sun.crypto.provider.SunJCE
security.provider.5=sun.security.jgss.SunProvider
security.provider.6=com.sun.security.sasl.Provider
security.provider.7=org.jcp.xml.dsig.internal.dom.XMLDSigRI
security.provider.8=sun.security.smartcardio.SunPCSC
security.provider.9=org.bouncycastle.jce.provider.BouncyCastleProvider
- Redémarrer jboss.
http://www.randombugs.com/java/javalangsecurityexception-jce-authenticate-provider-bc.html
http://nyal.developpez.com/tutoriel/java/bouncycastle/#L1
http://julienviet.com/crash/
J’ai déployé crash.war dans JBoss et au démarrrage, j’avais l’erreur suivante : Could not start CRaSSHD
10:22:31,335 INFO [SSHPlugin] Booting SSHD
10:22:32,826 INFO [SecurityUtils] Trying to register BouncyCastle as a JCE provider
10:22:36,861 SEVERE [SecurityUtils] Failed to register BouncyCastle as the defaut JCE provider
10:22:36,862 SEVERE [SSHLifeCycle] Could not start CRaSSHD
java.lang.RuntimeException: Failed to register BouncyCastle as the defaut JCE provider
…
Caused by: java.security.NoSuchProviderException: JCE cannot authenticate the provider BC
at javax.crypto.SunJCE_b.a(DashoA13*..)
at javax.crypto.KeyAgreement.getInstance(DashoA13*..)
at org.apache.sshd.common.util.SecurityUtils$BouncyCastleRegistration.run(SecurityUtils.java:97)
at org.apache.sshd.common.util.SecurityUtils.register(SecurityUtils.java:77)
... 79 more
Caused by: java.util.jar.JarException: Cannot parse jar:file:/opt/jboss/jboss-eap-5.1/jboss-as/server/all/deploy/crash.war!/WEB-INF/lib/bcprov-jdk16-1.46.jar
Solution :
- Récupérer les fichiers (Dans mon cas bcprov-jdk15on-147.jar et bcprov-ext-jdk15on-147.jar).
http://www.bouncycastle.org/latest_releases.html
- Copier ses fichiers (e.g:bcprov-jdk15on-147.jar et bcprov-ext-jdk15on-147.jar) dans /opt/jdk/jdk1.6.0_18/jre/lib/ext
- vi /path_to_your_jvm/jre/lib/security/java.security et ajouter la ligne security.provider.9=org.bouncycastle.jce.provider.BouncyCastleProvider
security.provider.1=sun.security.provider.Sun
security.provider.2=sun.security.rsa.SunRsaSign
security.provider.3=com.sun.net.ssl.internal.ssl.Provider
security.provider.4=com.sun.crypto.provider.SunJCE
security.provider.5=sun.security.jgss.SunProvider
security.provider.6=com.sun.security.sasl.Provider
security.provider.7=org.jcp.xml.dsig.internal.dom.XMLDSigRI
security.provider.8=sun.security.smartcardio.SunPCSC
security.provider.9=org.bouncycastle.jce.provider.BouncyCastleProvider
- Redémarrer jboss.
http://www.randombugs.com/java/javalangsecurityexception-jce-authenticate-provider-bc.html
http://nyal.developpez.com/tutoriel/java/bouncycastle/#L1
http://julienviet.com/crash/
mardi 11 septembre 2012
new Blog( perso );: maven settings et sécurité apparente
new Blog( perso );: maven settings et sécurité apparente: Maven 3 permet de crypter les mots de passe serveurs stockés dans votre fichier settings.xml. C'est un net progrès pour ce fichier qui peut...
vendredi 7 septembre 2012
Creating a tar.gz file in Java
Voici un lien vers un blog pour créer des archives (tar.gz dans cet exemple) en Java : Creating a tar.gz file in Java
Java Puzzle
Si vous cherchez des exercices Java pour vous faire réfléchir.Voici un blog qui devrait vous plaire :
http://wouter.coekaerts.be/2012/puzzle-dreams-solution
Les exercices sont pas faciles et intéressant.
http://wouter.coekaerts.be/2012/puzzle-dreams-solution
Les exercices sont pas faciles et intéressant.
lundi 23 avril 2012
Comment appliquer le formatage checkstyle automatiquement ?
Problème :
Vous voulez appliquer le formatage checkstyle avec CTRL-ALT-F sans avoir à le faire manuellement.
Solution :
Clic droit sur le projet -> Checkstyle -> Create a Formatter
Windows -> Preferences -> Code Style -> Formatter
Ensuite, il suffit de selectionner le formatter que l’on a générer.
On peut donc faire CTRL - ALT - F et voir les erreurs de formattage checkstyle corrigées.
Vous voulez appliquer le formatage checkstyle avec CTRL-ALT-F sans avoir à le faire manuellement.
Solution :
Clic droit sur le projet -> Checkstyle -> Create a Formatter
Windows -> Preferences -> Code Style -> Formatter
Ensuite, il suffit de selectionner le formatter que l’on a générer.
On peut donc faire CTRL - ALT - F et voir les erreurs de formattage checkstyle corrigées.
samedi 21 avril 2012
Java 1.8 lambda exemple
Lors de devoxx, on a assisté à une présentation de Guillaume Tardif sur le JDK1.8 et l’utilisation des lambdas (http://www.devoxx.com/display/FR12/JDK+8+demo++lambdas+in+Action)
Voici un exemple sur l’utilisation des lambdas :
Pour télécharger le jdk :http://jdk8.java.net/lambda/
Pour installer temporairement le jdk1.8 sous ubuntu :
sudo mv ./jdk1.8.0 /usr/lib/jvm/
sudo update-alternatives --install “/usr/bin/java” “java” “/usr/lib/jvm/jdk1.8/bin/java” 1
sudo update-alternatives --install “/usr/bin/javac” “javac” “/usr/lib/jvm/jdk1.8/bin/javac” 1
sudo update-alternatives --config java
Ensuite, il suffit de choisir le jdk.
Attention : Moi j’ai eu un bug avec javac car javac -version m’affichait toujours java 1.6.
Donc pour compiler l’exemple ci-dessous, j’ai fait :
/usr/lib/jvm/jdk1.8.0/bin/javac Main.java
java Main
Voici un exemple d’utilisation des lambdas :
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List names = new ArrayList();
names.add("superman");
names.add("batman");
names.forEach( (String s) -> { System.out.println(s);} );
}
}
Dans l’exemple ci-dessus, on affiche :
superman
batman
Autre point important, Java 1.8 devrait supporté l’héritage multiple !
Voici un exemple sur l’utilisation des lambdas :
Pour télécharger le jdk :http://jdk8.java.net/lambda/
Pour installer temporairement le jdk1.8 sous ubuntu :
sudo mv ./jdk1.8.0 /usr/lib/jvm/
sudo update-alternatives --install “/usr/bin/java” “java” “/usr/lib/jvm/jdk1.8/bin/java” 1
sudo update-alternatives --install “/usr/bin/javac” “javac” “/usr/lib/jvm/jdk1.8/bin/javac” 1
sudo update-alternatives --config java
Ensuite, il suffit de choisir le jdk.
Attention : Moi j’ai eu un bug avec javac car javac -version m’affichait toujours java 1.6.
Donc pour compiler l’exemple ci-dessous, j’ai fait :
/usr/lib/jvm/jdk1.8.0/bin/javac Main.java
java Main
Voici un exemple d’utilisation des lambdas :
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List names = new ArrayList();
names.add("superman");
names.add("batman");
names.forEach( (String s) -> { System.out.println(s);} );
}
}
Dans l’exemple ci-dessus, on affiche :
superman
batman
Autre point important, Java 1.8 devrait supporté l’héritage multiple !
mardi 17 avril 2012
Devoxx FRANCE c'est demain !
Demain, débute une super conférence !
Une conférence sur 3 jours.Si vous n’êtes pas inscrit, je vous invite à aller quand même sur le site.
Je pense que c'est un bon moyen de se faire une idée des tendances du moment.
jeudi 29 mars 2012
Import d'un projet maven : Pas de J sur le dossier projet
Problème :
J'ai fait les étapes suivantes
- Import Existing Maven project
- Browse -> Choix du projet Maven avec ces modules qui contient les modules
Dans le Package Explorer, on constate que le projet est un projet Maven mais pas Java.Il n'y a pas de J sur le dossier du projet.
Solution :
==> Clic droit Configure --> Convert to facet form
samedi 17 mars 2012
Go : Lecture et Ecriture d'un fichier
Pour lire et écrire dans un fichier avec Go, il suffit d'utiliser le package io/ioutil.
qui contient des méthodes telles que ReadFile ou WriteFile
Exemple :
package main
import ("fmt";"io/ioutil")
func main() {
fmt.Print("Lecture \n");
contents,_ := ioutil.ReadFile("/home/damikde/tmp/server.log")
println(string(contents))
fmt.Print("Ecriture \n");
ioutil.WriteFile("/home/damikde/tmp/toto", contents, 0x777)
}
jeudi 15 mars 2012
mercredi 7 mars 2012
Bonjour,
J'ai mis à jour ma liste de blogs avec l'ajout du podcast cast-it.
Pour ceux que ça intéresse, il y a un article intéressant sur le package java.io sur coder breakfast : http://thecodersbreakfast.net/index.php?post/2012/01/15/java-io-explique-simplement
J'ai mis à jour ma liste de blogs avec l'ajout du podcast cast-it.
Pour ceux que ça intéresse, il y a un article intéressant sur le package java.io sur coder breakfast : http://thecodersbreakfast.net/index.php?post/2012/01/15/java-io-explique-simplement
Inscription à :
Articles (Atom)