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

Struts 1 Java Discussion :

Intégrer hibernate dans une appli struts


Sujet :

Struts 1 Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 44
    Points : 28
    Points
    28
    Par défaut Intégrer hibernate dans une appli struts
    Salut,

    j'ai besoin d'aide pour arriver à intégrer hibernate à une application struts très simpliste. En fait j'ai commencé Hibernate il y a quelques jours pour ensuite modifier une grosse appli basé sur struts en y intégrant hibernate.

    En gros, voilà le code très simple de l'existant tiré d'un tutorial que j'avais trouvé sur le net ya un petit moment :

    struts-config.xml :
    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <!DOCTYPE struts-config PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
    "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
     
    <struts-config>
     
    	<form-beans>
    		<form-bean 
    			name="frmPersonne"       
    		  	type="org.apache.struts.validator.DynaValidatorForm" 
    		  >                    
    		  	<form-property name="pseudo" type="java.lang.String" initial="" />
    		  	<form-property name="mdp" type="java.lang.String" initial="" />
    		  	<form-property name="nom" type="java.lang.String" initial="" />
    		  	<form-property name="prenom" type="java.lang.String" initial="" />
    		  	<form-property name="age" type="java.lang.String" initial="" />
    		</form-bean>              
    	</form-beans>                     
     
    	<action-mappings>                 
    		<action                   
    			path="/validerFormulaire1"       
    			name="frmPersonne" 
    			scope="session"
    			validate="true"
    			input="/erreurs.do"
    			type="FormulaireAction"
    		>
    			<forward name="reponse" path="/resultat.do" />
    		</action>
     
    		<action 
    			path="/erreurs"
    			parameter="/vues/erreurs.personne.jsp"
    			type="org.apache.struts.actions.ForwardAction" 
    		/>
     
    		<action
    			path="/formulaire"
    			parameter="/vues/formulaire.personne.jsp"
    			type="org.apache.struts.actions.ForwardAction"
    		/>
     
    		<action 
    			path="/resultat"
    			parameter="/vues/resultat.personne.jsp"
    			type="org.apache.struts.actions.ForwardAction"
    		/>
    	</action-mappings>
     
    	<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
    		<set-property
    			property="pathnames"
    			value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"
    		/>
    	</plug-in>
     
    	<message-resources parameter="ressources.personneressources" null="false"/>
     
    </struts-config>

    FormulaireAction.java :
    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
     
    import...
     
    public class FormulaireAction extends Action {
     
    	public ActionForward execute(ActionMapping mapping, ActionForm form, 
    		HttpServletRequest request, HttpServletResponse response) throws IOException,ServletException {
     
    		DynaActionForm formulaire = (DynaActionForm)form;
     
    		request.setAttribute("pseudo", formulaire.get("pseudo"));
    		request.setAttribute("mdp", formulaire.get("mdp"));
    		request.setAttribute("nom",formulaire.get("nom"));
    		request.setAttribute("prenom", formulaire.get("prenom"));
    		request.setAttribute("age",formulaire.get("age"));
     
    		return mapping.findForward("reponse");
     
    	}
    }
    Donc voilà, j'aimerais en fait qu'à la validation du formulaire, les données soient envoyées vers ma bdd (mysql ici en l'occurence).
    J'avais pensé à faire ça dans le FormulaireAction.java, en rajoutant un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Session session = HibernateUtil.getSessionFactory().getCurrentSession();
    		session.beginTransaction();
     
    		Personne p = new Personne();
    		p.setPseudo((String) request.getAttribute("pseudo"));
    		p.setMdp((String) request.getAttribute("mdp"));
    		p.setNom((String) request.getAttribute("nom"));
    		p.setPrenom((String) request.getAttribute("prenom"));
    		p.setAge((String) request.getAttribute("age"));
     
    		session.save(p);
     
    		session.getTransaction().commit();
    Bon, je m'attendais pas à un miracle, ça ne fonctionne évidemment pas.


    Mon fichier hibernate.cfg.xml :
    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
     
    <?xml version='1.0' encoding='utf-8'?>
    <!DOCTYPE hibernate-configuration PUBLIC
            "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
            "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
     
    <hibernate-configuration>
     
        <session-factory>
     
            <!-- Database connection settings -->
            <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
            <property name="connection.url">jdbc:mysql://localhost/formulairePerso</property>
            <property name="connection.username">root</property>
            <property name="connection.password"></property>
     
            <!-- JDBC connection pool (use the built-in) -->
            <property name="connection.pool_size">1</property>
     
            <!-- SQL dialect -->
            <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
     
            <!-- Enable Hibernate's automatic session context management -->
            <property name="current_session_context_class">thread</property>
     
            <!-- Disable the second-level cache  -->
            <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
     
            <!-- Echo all executed SQL to stdout -->
            <property name="show_sql">true</property>
     
            <!-- Drop and re-create the database schema on startup -->
            <!--<property name="hbm2ddl.auto">create</property>-->
     
            <mapping resource="Personne.hbm.xml"/>
     
        </session-factory>
     
    </hibernate-configuration>
    Personne.hbm.xml :
    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
     
    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC
            "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
            "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
     
    <hibernate-mapping>
    	<class name="Personne" table="PERSONNE">
    		<id name="id" column="PERSONNE_ID">
    			<generator class="increment" />
    		</id>
    		<property name="pseudo" table="PSEUDO" >
    		<property name="mdp" column="MDP" />
    		<property name="nom" column="NOM" />
    		<property name="prenom" column="PRENOM" />
    		<property name="age" column="AGE" />		
     
     
    	</class>
    </hibernate-mapping>
    Ca fonctionne très bien dans une appli java servlet de base sans struts.
    Le problème est que j'ai vraiment du mal à voir dans ma tête comment organiser tout ça avec struts.

    Les fichiers sont bien placés je pense, dans le dossier WEB-INF on retrouve struts-config.xml, web.xml, les dtd de struts et hibernate.
    Dans WEB-INF/classes, on retrouve les .class des classes .java, le hibernate.cfg.xml, le Personne.hbm.xml et le log4j.properties.
    Les JSP sont dans le dossier racine de l'appli.

    Si je pouvais avoir un coup de patte, ça serait sympa.
    Ah oui, je tourne avec du struts 1.3.x et hibernate 3 (et tomcat 6)

    Merci

  2. #2
    Membre actif Avatar de CaptainCyd
    Inscrit en
    Avril 2007
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Avril 2007
    Messages : 201
    Points : 232
    Points
    232
    Par défaut


    est-ce tu peux poster le message d'erreur que tu as dans le log ?
    Est-ce que tu peux aussi poster ta classe java Personne ?

  3. #3
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Quelle est l'erreur ?

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 44
    Points : 28
    Points
    28
    Par défaut
    Voilà le message d'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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
     
    exception 
     
    javax.servlet.ServletException: L'exécution de la servlet a lancé une exception
     
     
    cause mère 
     
    java.lang.ExceptionInInitializerError
    	HibernateUtil.<clinit>(HibernateUtil.java:18)
    	FormulaireAction.execute(FormulaireAction.java:30)
    	org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
    	org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
    	org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
    	org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
    	org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
    	org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
    	org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
    	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
    	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
     
     
    cause mère 
     
    org.hibernate.InvalidMappingException: Could not parse mapping document from resource Personne.hbm.xml
    	org.hibernate.cfg.Configuration.addResource(Configuration.java:569)
    	org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1587)
    	org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1555)
    	org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1534)
    	org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1508)
    	org.hibernate.cfg.Configuration.configure(Configuration.java:1428)
    	org.hibernate.cfg.Configuration.configure(Configuration.java:1414)
    	HibernateUtil.<clinit>(HibernateUtil.java:14)
    	FormulaireAction.execute(FormulaireAction.java:30)
    	org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
    	org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
    	org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
    	org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
    	org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
    	org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
    	org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
    	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
    	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
     
     
    cause mère 
     
    org.hibernate.InvalidMappingException: Could not parse mapping document from input stream
    	org.hibernate.cfg.Configuration.addInputStream(Configuration.java:508)
    	org.hibernate.cfg.Configuration.addResource(Configuration.java:566)
    	org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1587)
    	org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1555)
    	org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1534)
    	org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1508)
    	org.hibernate.cfg.Configuration.configure(Configuration.java:1428)
    	org.hibernate.cfg.Configuration.configure(Configuration.java:1414)
    	HibernateUtil.<clinit>(HibernateUtil.java:14)
    	FormulaireAction.execute(FormulaireAction.java:30)
    	org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
    	org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
    	org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
    	org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
    	org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
    	org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
    	org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
    	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
    	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
     
     
    cause mère 
     
    org.dom4j.DocumentException: Error on line 16 of document  : The element type "property" must be terminated by the matching end-tag "</property>". Nested exception: The element type "property" must be terminated by the matching end-tag "</property>".
    	org.dom4j.io.SAXReader.read(SAXReader.java:482)
    	org.hibernate.cfg.Configuration.addInputStream(Configuration.java:499)
    	org.hibernate.cfg.Configuration.addResource(Configuration.java:566)
    	org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1587)
    	org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1555)
    	org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1534)
    	org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1508)
    	org.hibernate.cfg.Configuration.configure(Configuration.java:1428)
    	org.hibernate.cfg.Configuration.configure(Configuration.java:1414)
    	HibernateUtil.<clinit>(HibernateUtil.java:14)
    	FormulaireAction.execute(FormulaireAction.java:30)
    	org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
    	org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
    	org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
    	org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
    	org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
    	org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
    	org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
    	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
    	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    Le truc du "Could not parse mapping document from resource Personne.hbm.xml" est quand même bizarre puisque mes fichiers sont dans le même répertoire, donc je vois pas comment il ne pourrait pas le trouver.

    Et voilà ma classe Personne :

    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
    41
    42
    43
     
     
    public class Personne {
     
    	private String pseudo;
    	private String mdp;
    	private String nom;
    	private String prenom;
    	private String age;
    	public String getPseudo() {
    		return pseudo;
    	}
    	public void setPseudo(String pseudo) {
    		this.pseudo = pseudo;
    	}
    	public String getMdp() {
    		return mdp;
    	}
    	public void setMdp(String mdp) {
    		this.mdp = mdp;
    	}
    	public String getNom() {
    		return nom;
    	}
    	public void setNom(String nom) {
    		this.nom = nom;
    	}
    	public String getPrenom() {
    		return prenom;
    	}
    	public void setPrenom(String prenom) {
    		this.prenom = prenom;
    	}
    	public String getAge() {
    		return age;
    	}
    	public void setAge(String age) {
    		this.age = age;
    	}
     
     
     
    }

  5. #5
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <property name="pseudo" table="PSEUDO" >
    à remplacer par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <property name="pseudo" table="PSEUDO" />

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 44
    Points : 28
    Points
    28
    Par défaut
    En effet, merci !

    Bon maintenant par contre j'ai une autre erreur bien par rapport à ce que j'ai mis dans FormulaireAction.java :

    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
     
    23 oct. 2007 13:25:04 org.apache.catalina.core.StandardWrapperValve invoke
    GRAVE: "Servlet.service()" pour la servlet action a généré une exception
    java.lang.NoClassDefFoundError
    	at FormulaireAction.execute(FormulaireAction.java:30)
    	at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
    	at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
    	at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
    	at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
    	at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
    	at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
    	at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
    	at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
    	at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
    	at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:852)
    	at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:584)
    	at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1508)
    	at java.lang.Thread.run(Unknown Source)
    La ligne 30 correspond à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Session session = HibernateUtil.getSessionFactory().getCurrentSession();

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 44
    Points : 28
    Points
    28
    Par défaut
    Ok c'est bon, j'ai réussi.
    Le code était en fait bon, j'avais oublié de rajouter le champs "id" à Personne.java et quelques petites autres erreurs d'inatention.

    Merci pour vos réponses

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Intégrer TinyMCE dans une appli VB6
    Par reanon dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 08/04/2009, 17h41
  2. intégrer HIBERNATE dans une application MVC
    Par redouaneterra dans le forum Hibernate
    Réponses: 3
    Dernier message: 15/05/2008, 11h36
  3. Intégrer WebDav dans une appli Web Struts
    Par bewyder dans le forum Autres Logiciels
    Réponses: 0
    Dernier message: 18/12/2007, 15h50
  4. [Axis] Intégrer Axis dans une appli web existante
    Par klael dans le forum Services Web
    Réponses: 2
    Dernier message: 01/06/2007, 23h27
  5. Réponses: 1
    Dernier message: 01/08/2006, 14h58

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