IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Plateformes réactives et architectures modulaires Java Discussion :

Tutoriel Vert.x 3 : créer, lancer et tester un Verticle


Sujet :

Plateformes réactives et architectures modulaires Java

  1. #1
    Rédacteur
    Avatar de thierryler
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    4 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 078
    Points : 12 815
    Points
    12 815
    Par défaut Tutoriel Vert.x 3 : créer, lancer et tester un Verticle
    Bonjour,

    Je vous propose un article d'introduction à Vert.x 3 : Tutoriel Vert.x 3 : créer, lancer et tester un Verticle

    Synopsis : Vert.x est une API asynchrone très proche du modèle d'acteurs. Vert.x est polyglotte, simple, scalable (élastique) et hautement concurrente. Vert.x est bien adapté aux architectures en micro-services, mais s'intègre aussi parfaitement dans une WebApp plus classique. Dans ce premier article d'une série consacrée à Vert.x 3, nous allons tout d'abord voir comment installer le framework, écrire un premier verticle, le déployer et le tester.

    Lien : http://thierry-leriche-dessirier.dev...ster-verticle/

    N'hésitez pas à commenter sur le forum.

    Bonne lecture.
    Th.

  2. #2
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Points : 19 450
    Points
    19 450
    Par défaut
    Merci pour ce tutoriel et la découverte de ce framework très prometteur .
    Je vais de ce pas démarrer un POC sur des cas concret de webservices dans un des projets auxquels je participe.
    Si cette techno peux se coupler facilement à du Spring je me ferais une applis blanche pour des projets à venir.

  3. #3
    Rédacteur
    Avatar de thierryler
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    4 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 078
    Points : 12 815
    Points
    12 815
    Par défaut
    Tout peut se pluger avec Spring...

    Mais clairement, quand tu fais du Vert.x, tu n'as pas envie de prendre Spring :-(

    Pour la sécu, il y a le module pac4j-vertx. Pour l'injection, on va plutôt utiliser HK2-vertx. Pour la base de données, tu vas faire du nosql avec cassandra-vertx... Pour les web services, tu as genre jersey-vertx...

  4. #4
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Points : 19 450
    Points
    19 450
    Par défaut
    J'ai commencé un composant d'intégration avec ElasticSearch pour voir ce que ça donne : l'idée c'est de faire des urls permettant de lancer des routines d'indexation en asynchrone (ce que nous faisons habituellement avec du Spring Batch) mais aussi d'exposer des webservices de restitution sans attaquer ElasticSearch directement. Bref, c'est un "POC" c'est pas forcement la meilleure solution pour ce que je veux faire.

    Sinon, je pensais à Spring uniquement pour la partie IoC sur quelques objets (dont le client ElasticSearch, la data source sur un PostgreSQL, ce genre de choses) et non pas pour le reste. C'est vrai qu'aujourd'hui on nous incite à faire du CDI mais je ne suis pas encore habitué.

    J'ai vu aussi un elastic-search vert.x sur Github, je vais voir ça de plus près.

  5. #5
    Rédacteur
    Avatar de thierryler
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    4 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 078
    Points : 12 815
    Points
    12 815
    Par défaut
    Même pour l'ioc, tu peux te passer de Spring, il y a plus simple et plus performant. Regarde HK2... C'est celui qu'on utilise souvent avec Vert.x.

    Pour ton affaire, je te conseille de voir ça comme des micro-services. Pense léger.

  6. #6
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Points : 19 450
    Points
    19 450
    Par défaut
    Merci pour les conseils : effectivement c'est un composant qui va être utilisé dans un projet composé de fournisseurs de services REST (Spring, Hibernate et CXF) et d'IHMs webs faites en Spring MVC/Thymleaf/Bootstrap.

    Mais je vais suivre tes recommandations et rendre ce composant le plus léger possible et indépendant du socle commun aux autres modules et ne pas dépendre de Spring. Je vais voir pour HK2.

  7. #7
    Rédacteur
    Avatar de thierryler
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    4 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 078
    Points : 12 815
    Points
    12 815
    Par défaut
    Regarde ça pour HK2 : https://github.com/englishtown/vertx-hk2

    C'est un des modules que je vais utiliser pour les articles suivants. D'ailleurs, sur le même github, tu trouveras de nombreux modules vraiment top, notamment celui pour jersey.

  8. #8
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Points : 19 450
    Points
    19 450
    Par défaut
    Encore merci, la je viens de mettre en place l'extension pour HK2, ça fonctionne bien et ça répond parfaitement à mon besoin
    Bon comme j'ai fait un peu à ma sauce, j'ai hâte de voir ton prochain tuto pour voir si c'est bien fait ^^
    J'ai également vu qu'il y avait un plugin pour Elastic Search sur github (de même que pour SolR, Cassandra et autres), je vais voir si c'est intéressant.

  9. #9
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Points : 19 450
    Points
    19 450
    Par défaut
    Bon pour infos mon POC est concluant : le composant me permet de faire des routes asynchrones pour indexer dans Elastic Search en delta toutes les 5 minutes, et des routes synchrones pour restituer. J'ai pu décomissionner certains webservices de recherche en base tout en gardant les contrats de services CXF qui étaient et sont toujours dans un autre jar (pas besoin donc d'avoir Jersey dans ce composant d'intégration pour ma part, pour l'instant).

    HK2 / CDI remplis bien son rôle
    Il me reste la sécurité à gérer mais c'est pas le plus compliqué.

    Bref, j'adhère à cette techno

    Encore merci pour tout

  10. #10
    Rédacteur
    Avatar de thierryler
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    4 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 078
    Points : 12 815
    Points
    12 815
    Par défaut
    Au final, tu as trouvé que c'était simple ?

    Je te conseille deux modules :

    - vertx-jersey pour tes web services : https://github.com/englishtown/vertx-jersey
    - vertx-pac4j pour la sécu : https://github.com/pac4j/vertx-pac4j

    A noter que la version de janvier de Pac4J sera full reactive.

  11. #11
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Points : 19 450
    Points
    19 450
    Par défaut
    Ce qui a été compliqué c'est trouver comment initialiser le binder qui initialise les objets singletons (parce que ça manque encore un peu de documentations sur cette partie).

    Après pour le reste, c'est du CDI, donc pas plus compliqué pour ceux qui ont l'habitude de faire de l'IoC avec du Spring ou autres...

    Pour les webservices : ce qu'il faut savoir c'est qu'avant d'intégrer ce nouveau composant, j'avais déjà deux modules : les IHMs dans une webapp Spring MVC / Thymleaf et l'accès à la base de données PostgreSQL via des webservices REST, authentifiés via une conf CXF utilisés par les clients, dans une autre webapp. Cette séparation ayant pour but par la suite de faciliter le load balancing des fournisseurs de service et également d'être ré-utilisés par de futures applications (mobiles entre autres).

    Le but de cette mise en place d'Elastic Search est de répondre plus rapidement aux requêtes faites via des moteurs de recherche par critères multiples dans l'application. Donc l'idée que j'avais c'est de :

    • Ne pas impacter le code des IHMs clientes qui consomment des webservices via des clients CXF ;
    • Ré-utiliser le même mode d'authentification (que je vais migrer d'ailleurs) via les intercepteurs de CXF déjà implémentés côté client ;
    • Pouvoir de nouveau consommer les webservices de recherche en base déjà en place avec un simple changement de conf (ip/port du fournisseur de service) en cas d'indisponnibilité d'Elastic Search ou de ce nouveau composant.


    Donc pour l'instant, j'ai fait en sorte que les routes de mon verticle soient compliant avec les contrats de services CXF utilisés par les IHMs sans pour autant embarquer la dépendance CXF dans ce nouveau composant (les contrats de services étant dans un jar à part entière depuis le début du projet, notamment pour ré-utiliser les interfaces et VO côté client et fournisseur de service).

    Donc Jersey, j'avais pas prévu pour le moment : soit je remplace CXF partout par du Jersey (ce qui n'est pas une mince affaire mais préférable afin d'éviter la multiplication des frameworks ayant la même finalité), soit je met du Jersey uniquement sur ce nouveau module (et côté client je continue à faire du CXF), soit je continue comme je fait... pour le besoin que j'ai c'est suffisant.

    Pour la sécu pareil, je voudrais avoir la même authentification sur l'ensemble des applications.
    Voilà, je vais aller regarder ces deux plugins vert.x malgré tout et voir si je peux limiter les impacts sur les autres applications déjà existantes.

    En tout cas merci pour tout

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 15
    Points : 13
    Points
    13
    Par défaut Tests JUnit
    Merci Thierry pour ce tuto vraiment très clair.

    Je viens de découvrir Vert.x et ça donne envie de s'y mettre sérieusement !

    J'ai suivi ton tuto jusqu'à la fin et je n'arrive pas à lancer le test JUnit "testByeByeWorld" sans obtenir d'erreur d'assertion "expected true". En faisant un Debug on dirait pourtant que tout le code est exécuté sans erreur...

    As-tu rencontré ce genre de problème ?

    Cordialement.

  13. #13
    Rédacteur
    Avatar de thierryler
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    4 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 078
    Points : 12 815
    Points
    12 815
    Par défaut
    Tu as bien tout fait comme il faut ? Montre ton code.

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 15
    Points : 13
    Points
    13
    Par défaut code
    Merci pour ta réponse,

    Voici le code en pièce-jointe :






  15. #15
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2015
    Messages : 9
    Points : 11
    Points
    11
    Par défaut HandleBars comme TemplateEngine
    Salut,

    sympa cette initiation à Vert.X, en revenche , je tente d'utiliser HandleBars comme TemplateEngine mais çà coince...

    Dans la méthode start() de mon AbstractVerticle, j'ai ajouté

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     final TemplateEngine engine = HandlebarsTemplateEngine.create();
            TemplateHandler handler = TemplateHandler.create(engine);
     
            router.get("/dynamic/*").handler(handler);
     
            router.getWithRegex(".+\\.hbs").handler(handler);
    quand je tente d'atteindre l'url http://localhost:8080/dynamic
    je me retrouve avec une erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    io.vertx.ext.web.impl.RoutingContextImplBase
    GRAVE: Unexpected exception in route
    io.vertx.core.VertxException: java.lang.NullPointerException
    	at io.vertx.ext.web.impl.Utils.readFileToString(Utils.java:156)
    	at io.vertx.ext.web.templ.impl.HandlebarsTemplateEngineImpl$Loader.sourceAt(HandlebarsTemplateEngineImpl.java:91)
    	at com.github.jknack.handlebars.Handlebars.compile(Handlebars.java:411)
    	at com.github.jknack.handlebars.Handlebars.compile(Handlebars.java:397)
    	at io.vertx.ext.web.templ.impl.HandlebarsTemplateEngineImpl.render(HandlebarsTemplateEngineImpl.java:64)
    	at io.vertx.ext.web.handler.impl.TemplateHandlerImpl.handle(TemplateHandlerImpl.java:61)
    	at io.vertx.ext.web.handler.impl.TemplateHandlerImpl.handle(TemplateHandlerImpl.java:45)
    	at io.vertx.ext.web.impl.RouteImpl.handleContext(RouteImpl.java:218)
    	at io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:67)
    	at io.vertx.ext.web.impl.RoutingContextImpl.next(RoutingContextImpl.java:96)
    	at io.vertx.ext.web.impl.RouterImpl.accept(RouterImpl.java:61)
    	at io.vertx.core.http.impl.ServerConnection.handleRequest(ServerConnection.java:276)
    	at io.vertx.core.http.impl.ServerConnection.processMessage(ServerConnection.java:391)
    	at io.vertx.core.http.impl.ServerConnection.handleMessage(ServerConnection.java:137)
    	at io.vertx.core.http.impl.HttpServerImpl$ServerHandler.doMessageReceived(HttpServerImpl.java:476)
    	at io.vertx.core.http.impl.HttpServerImpl$ServerHandler.doMessageReceived(HttpServerImpl.java:425)
    	at io.vertx.core.http.impl.VertxHttpHandler.lambda$channelRead$17(VertxHttpHandler.java:80)
    	at io.vertx.core.impl.ContextImpl.lambda$wrapTask$15(ContextImpl.java:312)
    	at io.vertx.core.impl.ContextImpl.executeFromIO(ContextImpl.java:217)
    	at io.vertx.core.http.impl.VertxHttpHandler.channelRead(VertxHttpHandler.java:80)
    	at io.vertx.core.net.impl.VertxHandler.channelRead(VertxHandler.java:124)
    	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:308)
    	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:294)
    	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:244)
    	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:308)
    	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:294)
    	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:846)
    	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131)
    	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511)
    	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468)
    	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382)
    	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354)
    	at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:111)
    	at java.lang.Thread.run(Thread.java:745)
    Caused by: java.lang.NullPointerException
    	at io.vertx.ext.web.impl.Utils.readFileToString(Utils.java:153)
    	... 33 more
    Je pense qu'il ne trouve pas mon fichier index.hbs, j'ai fait plusieurs tentatives mais le résultat n'est pas probant.

    Je trouve peu d'infos sur le sujet, si quelqu'un connait la solution je suis preneur ^^

  16. #16
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2015
    Messages : 9
    Points : 11
    Points
    11
    Par défaut
    Personne, n'a une idée ?

  17. #17
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Points : 19 450
    Points
    19 450
    Par défaut
    Salut.

    Je n'ai pas utilisé la partie Handlebars de vert.x web personnellement (je l'utilise que pour des micro-services et composants d'intégration).
    Toutefois, je vois pas à quel moment tu fait le rendering de ton template hbs avec la requête HTTP.

    Il y a un exemple de handler sur un router qui utilise la méthode render sur un fichier hbs ici : http://www.programcreek.com/java-api...TemplateEngine

    Tu peux peut être tenter de t'en inspirer. Ca m'étonnerait pas que dans ton cas la classe Utils de vert.x web pête un NPE parce que le nom du HBS est null car pas passé à la méthode render : piste à explorer.

    Sinon : cette file est sensée être destinée à commenter un tutoriel. Pour les problème technique, on devrait ouvrir un sujet à part avec une question = une discussion (en tagguant vert.x dans le titre).

    Cordialement,
    Idriss

  18. #18
    Membre expérimenté
    Avatar de muad'dib
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 013
    Points : 1 381
    Points
    1 381
    Par défaut
    Salut Thierry et merci beaucoup pour ce tutoriel sur cette techno qui a l'air relativement intéressante !

    Comme tu le disais en début d'article ça demande un changement dans sa manière de penser, je vais m'intéresser un peu plus au sujet.
    J'aimerais éventuellement trouver de plus grosses applications utilisant cette techno dont je pourrais m'inspirer pour voir son utilisation grandeur nature (si tu en connais une open source je suis preneur )

    Sinon je confirme que le test JUnit ne marche pas, mais c'est parce que body.toString() retourne le code HTML, et l'assertion vérifie que le texte égale Hello World

    <http><body><h1>Hello world!</h1></body></http>

  19. #19
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2015
    Messages : 9
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par ok.Idriss Voir le message
    Sinon : cette file est sensée être destinée à commenter un tutoriel. Pour les problème technique, on devrait ouvrir un sujet à part avec une question = une discussion (en tagguant vert.x dans le titre).
    Du coup j'ai créé un autre post ici : http://www.developpez.net/forums/d15...e/#post8690486

    Merci pour ta réponse Idriss.

  20. #20
    Rédacteur
    Avatar de thierryler
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    4 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 078
    Points : 12 815
    Points
    12 815
    Par défaut
    Je vois qu'il a de l'activité. Alors non je ne connais pas de projet open source qui serait des bons exemples de l'utilisation de Vert.x. Je n'en ai fait que sur des projets d'entreprise dont je n'ai pas le droit de parler.

Discussions similaires

  1. [Android] [Tutoriel] Tiny Weather - Comment créer une application météo de A à Z
    Par sylsau dans le forum Mon application mobile
    Réponses: 9
    Dernier message: 26/01/2017, 09h56
  2. [Batch] Créer un utilisateur, tester la connexion et plus
    Par passidym dans le forum Scripts/Batch
    Réponses: 16
    Dernier message: 03/02/2014, 19h36
  3. Tutoriels pour apprendre a créer une application eclipse
    Par NiHiL dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 21/12/2006, 23h53
  4. [Jboss+Eclipse] Cherche tutoriel pour créer des EJB3
    Par ericw78 dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 26/08/2005, 17h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo