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

Java ME Discussion :

Envoi de données dans une bdd distante via une midlet installée dans un téléphone.


Sujet :

Java ME

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2009
    Messages : 30
    Points : 36
    Points
    36
    Par défaut Envoi de données dans une bdd distante via une midlet installée dans un téléphone.
    salut à tous.
    Je suis entrain de bosser sur une application j2me(midlet) qui permet de recueillir des informations (nom,prénom,age,etc...) au près des potentiels clients lors des prospections de solutions informatique par exemple via un formulaire.Ces informations seront par la suite stocker dans une base de données distante.

    ce que j'aimerais savoir c'est : "Est il possible pour moi de stocker ces données dans une base de données distante puisque l'application en question sera stocker dans téléphone portable?" si oui "que dois je utiliser ou faire pour pouvoir mettre sur pied une telle solution en utilisant j2me biensur".

    votre aide me sera d'un grand soutient.
    Merci d'avance.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mai 2007
    Messages : 51
    Points : 56
    Points
    56
    Par défaut
    tu pourras la stocker sur une bdd, si déjà le téléphone support la connexion via une appli j2me.

    tu peut faire un truc simple, une page php qui prend en GET ou POST, les information que tu as besoin,

    et dans ton appli , tu recrée l'url (dans le cas d'un GET) puis tu utilise un Connector.open(url) par exemple.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    HttpConnection c = (HttpConnection)Connector.open(url );
    int rc = ((HttpConnection)c).getResponseCode();
     
    if(rc != HttpConnection.HTTP_OK) {
       throw new IOException("HTTP response code: " + rc);
    }
    voila un bout de code qui peut te servir , il va juste faire "l'envois", et ne recupere rien de la page php

  3. #3
    Membre régulier

    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 51
    Points : 106
    Points
    106
    Par défaut
    Citation Envoyé par napster007 Voir le message
    "Est il possible pour moi de stocker ces données dans une base de données distante puisque l'application en question sera stocker dans téléphone portable?"
    Si je comprends le question le réponse est "absolument". Une architecture typique pour synchroniser donnée entre un application mobile et une base de donnée (ou n'importe quel service client-server) est client->application-qui-récupère-donnée-de-la-base->base.

    Le projet que je suis en train de livrer actuellement est un client J2ME qui échange XML avec un serveur J2EE fondé sur Oracle. C'est l'application J2EE qui traduit entre l'XML et l'SQL.

    J'espère que ça vous aide. Si non et plus de détail serait utile il ne faut que demander.

    Bonne chance.

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2009
    Messages : 30
    Points : 36
    Points
    36
    Par défaut
    Merci les gars pour toutes ces réponses car elles élargissent ma vision des choses.
    Mais voici avec plus de précision ce à quoi je pensais lorsque j'ai posté ce message:
    Une application J2ME se comportant ainsi:
    -Un formulaire d'enrégistrement(faisant partie de l'application J2ME) dont les données en provenance seront stockées dans la bdd distante au cas la connexion entre les deux est établie et dans le téléphone sinon (utilisation RMS) en plus il existe un démon qui scrute permanament si la connexion est déjà effective afin d'acheminer les données stockées dans le téléphone vers le serveur.
    -Le deuxième volet est la notification de la personne enrégistrée par sms dès que les données sont stockées.

    voilà avec plus de précision ce que j'aimerais réaliser et c'est l'objet de mes préoccupations.merci d'avance pour d'autre réponses.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mai 2007
    Messages : 51
    Points : 56
    Points
    56
    Par défaut
    Pour le formulaire, il n'y a aucun problème, tu as accès a toute les classes et fonction genre textfield, button, etc ...

    Pour la connexion, aucun problème non plus, du moment que le téléphone supporte la connexion.

    Pour le RMS, tu pourras y stocker ce que tu as besoin, par contre, pour le deamon, tu ne pourras pas le faire en dehors de l'application ou dans une application qui en arrière plan. Tu devras avoir l'application de lancé , et au premier plan, sauf cas exceptionnel du téléphone. Tu pourras aussi faire une autre application qui pourra lire le rms de l'application formulaire (RMS partagé), mais il y a pas mal de problème sur des téléphones.

    Pour la notification, il te faut un modem GSM connecté a un serveur pour envoyer les sms.

    J'espère que cela t'aideras.

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2009
    Messages : 30
    Points : 36
    Points
    36
    Par défaut
    faut il necessairement que le téléphone en question ait un accès à internet?

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mai 2007
    Messages : 51
    Points : 56
    Points
    56
    Par défaut
    Si tu veux pouvoir transférer tes donné, tu n'as pas beaucoup de possibilité :

    - Net
    - blueTooth (pc - téléphone)
    - infrarouge (pc - téléphone)
    - fichier sur la carte mémoire (si le téléphone permet d'écrire sur la carte depuis une application)


    Par contre, s'il s'agit seulement d'un formulaire, pourquoi ne pas faire une page wap ? tu n'auras plus les contrainte de la connexion d'un tel au net, et tu aura accès a ton formulaire tout aussi bien

  8. #8
    Inscrit

    Profil pro
    Inscrit en
    Février 2008
    Messages
    658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 658
    Points : 892
    Points
    892
    Par défaut
    Si je comprends bien ta requete, je crois que j'ai la solution

    voici d'abord ce que j'ai compris :

    1. Une application java me sur le mobile qui recuille les donné dans les textfield pour les envoyer en une base distance ( mysql, postresql, ou oracle par exemple).

    Je te rappelle d'abord que java me ne supporte pas la base de donnée contrairement à Android et Iphone qui integre bien Sqlite.
    Donc pour enregistrer dans java me des donnée dans le telephone lui meme tu dois l'utiliser rms. Ce que je ne vais pas commenter. Je suppose que tu peux faire cela.

    2. Votre application est dans le mobile. La base de donnée ( mysql par exemple) est installé sur un serveur distant. Donc vous voulez recueillir les donnée que le client tape dans le mobile et l'envoyer au base de donné pr l'enregistrer.

    Alors ceci est tres simple :

    1. Envoie des donnée depuis le mobile :


    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
          private StringBuffer performSend() {
            HttpConnection httpClient = null;
            OutputStream os = null;
            InputStream is = null;
           // String url = "http://localhost:8080/Serveur/Servlet";
            String url= "http://localhost:8084/WebTracking/Serveur";
     
           StringBuffer response = null;
           try {
             httpClient = (HttpConnection) Connector.open(url, Connector.READ_WRITE, true);
             httpClient.setRequestMethod(HttpConnection.POST);
             httpClient.setRequestProperty("User-Agent", "Profile/MIDP-1.0 Configuration/CLDC-1.0");
             httpClient.setRequestProperty("CONTENT-TYPE", "application/x-www-form-urlencoded");
             httpClient.setRequestProperty("Connection", "close");
     
             os = httpClient.openOutputStream();
     
             os.write(latf.getString().getBytes());
             os.write(logf.getString().getBytes());
             os.write(altf.getString().getBytes());
             os.write(vitesse.getString().getBytes());
             os.write(temps.getString().getBytes());
             os.write(idclient.getBytes());
     
     
             int ch = 0;
             if(httpClient.getResponseCode() != HttpConnection.HTTP_OK) {
               System.err.println("Server returned error: " + httpClient.getResponseCode() + " - " + httpClient.getResponseMessage());
             } else if(httpClient.getResponseCode() == HttpConnection.HTTP_OK) {
                 if(is == null)
                        is = httpClient.openInputStream();
                    response = new StringBuffer();
                    while ((ch = is.read()) != -1) {
                        response.append((char) ch);
                    }
             }
             httpClient.close();
           }
           catch (Exception e) {System.out.print("errrrrrrrrr"+e.toString());}
           finally {
                if(os != null) {
                    try{
                        os.close();
                    } catch (IOException e) {
     
                    } finally {
                        os = null;
                    }
                }
                if(httpClient != null) {
                    try {
                        httpClient.close();
                    } catch (IOException e) {
     
                    } finally {
                        httpClient = null;
                    }
                }
            }
           return response;
        }


    =========================================

    Reception des donnée dans le servelt depuis le mobile :


    Methode :


    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
    private String readDataFromRequest(HttpServletRequest request) {
      String content = null;
      StringBuffer sb = null;
      BufferedReader bf = null;
     
      try {
       sb = new StringBuffer();
       bf = new BufferedReader(new InputStreamReader(request.getInputStream()));
       String s = null;
       while((s = bf.readLine()) != null) {
         sb.append(s + "\n");
       }
       content  = sb.toString();
      }
      catch(IOException io) {System.out.println(io.toString()+"vraiment");}
      finally {
       if(bf != null) {
        try {
         bf.close();
        }catch(IOException io) {}
        finally {
         bf = null;
        }
       }
       sb = null;
      }
      return content;
     }
    ===============================================

    Tu peux bien alors recevoir les donné dans le servlet et l'enregistrer dans mysql ou autre en creant bien une methode pour se connecter à la base.

  9. #9
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 62
    Points : 43
    Points
    43
    Par défaut
    Bonjour,

    Comment faire pour envoyer via post une variable de type Image?

    Mercid d'avance

  10. #10
    Inscrit

    Profil pro
    Inscrit en
    Février 2008
    Messages
    658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 658
    Points : 892
    Points
    892
    Par défaut
    Une image ??? c'est un tableau de byte non

    tu convertis ton objet image en tableau byte [] et tu l'ajoute à os.write(montableaudebite);

Discussions similaires

  1. Modification dans une bdd via une liste choisie via une checkbox
    Par LuffyWinchester dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 20/03/2015, 15h41
  2. [WD19] Enregistrer image sur une BDD distante via un webservice
    Par Programming-Z dans le forum WinDev
    Réponses: 3
    Dernier message: 24/12/2014, 11h37
  3. Réponses: 1
    Dernier message: 27/03/2013, 12h09
  4. [AJAX] actualiser une liste déroulante via une BDD
    Par Jimmy72_ dans le forum AJAX
    Réponses: 19
    Dernier message: 28/03/2011, 15h45
  5. Installer une macro Word via une appli distante
    Par JnewB dans le forum VBA Word
    Réponses: 3
    Dernier message: 28/09/2006, 14h17

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