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

Services Web Java Discussion :

Problème d'affectation d'entier depuis un client C#


Sujet :

Services Web Java

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Problème d'affectation d'entier depuis un client C#
    Bonjour,

    J'ai un web service créé sous Eclipse, avec une classe Test ou figurent deux attributs : un nommé index, de type int, et l'autre nommé nb de type String.
    C'est deux attributs sont déclarés en private, et je passe donc par des get/set pour obtenir et modifier ces valeurs.

    Je rencontre un petit problème lorsque j'essaie d'attribuer une valeur à l'attribut index (l'entier donc) depuis mon code C#.
    Effectivement, quand je fais un :
    ... dans mon code java, ça ne passe jamais dans le setIndex.

    Pourtant, quand je fais un :
    ... dans java ça passe bien dans mon setNb !

    Et par contre, je n'ai aucun soucis au niveau des get, j'arrive bien à récupérer les valeurs de mes attributs...

    Voilà le code complet de ma classe Test (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
    public class Test {
    	private int index;
    	private String nb;
     
    	public int getIndex() {
    		return index;
    	}
    	public void setIndex(int index) {
    		this.index = index;
    	}
     
     
     
    	public String getNb() {
    		return nb;
    	}
    	public void setNb(String nb) {
    		this.nb = nb;
    	}
     
    	public Test Read()
    	{
    			return this;
    	}
    }

    Et voici mon test au niveau du C# :
    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
    private void button1_Click(object sender, EventArgs e)
            {
                Test test = new Test();
     
                try
                {
                    test.index = 2;
                    test.nb = "4";
     
                    test = (Test)logiflexWS.action(test, "Read");
                    MessageBox.Show("Index = " + test.index +
                        "\rnb = " + test.nb);
                }
                catch (Exception expt)
                {
                    MessageBox.Show(expt.Message);
                }
            }

    J'obtiens, après mon test :
    index = 0
    nb = 4

    Alors que je devrais avoir index = 2.

    Si vous voyez où est le problème... Parce que moi j'ai beau chercher, je ne comprend pas pourquoi l'affectation des attributs de type String fonctionne, et aucun autre type (j'ai essayé avec les int, mais aussi avec un short, même résultat...)

    Merci d'avance !

    Cordialement,
    Damien

  2. #2
    Traductrice
    Avatar de Mishulyna
    Femme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2008
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 504
    Points : 7 840
    Points
    7 840
    Par défaut
    Bonjour,

    Essaie avec "private Integer index;".
    Chaque fois que tu dis "je ne peux pas", n'oublie pas d'ajouter le mot "encore".

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    J'ai aussi testé avec Integer, sauf que c'est encore pire, vu qu'il ne passe pas non plus dans le set, il n'est pas instancier, et ne renvoie même plus 0, vu qu'il est null...
    J'ai beau retourner ça dans tous les sens, je ne vois pas pourquoi il ne traite que les String...

  4. #4
    Traductrice
    Avatar de Mishulyna
    Femme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2008
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 504
    Points : 7 840
    Points
    7 840
    Par défaut
    Comment sont sérialisés / dé-sérialisés les objets?
    Chaque fois que tu dis "je ne peux pas", n'oublie pas d'ajouter le mot "encore".

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Avec le WSDL il me semble.
    Voici le morceau de code correspondant à ma classe Test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    -<xs:complexType name="Test">
     
     
    -<xs:sequence>
     
    <xs:element name="index" type="xs:int" minOccurs="0"/>
     
    <xs:element name="nb" type="xs:string" nillable="true" minOccurs="0"/>
     
    </xs:sequence>
     
    </xs:complexType>

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Bon, je viens de trouver une solution, mais je ne sais pas si c'est vraiment la bonne... (mais ça fonctionne)
    Pour qu'il prenne en compte mon index changé depuis mon client c#, il faut que je lui précise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Test.indexSpecified = true;

    Mais je trouve vraiment étonnant qu'on soit obligé de préciser ça, pour tous les type (int, float, short, boolean, ...) sauf pour String...
    Et si vous avez une autre solution à me proposer, je suis preneur, car au final ça va me faire pas mal de ligne de code en plus si j'adopte cette solution...

    Merci d'avance pour votre aide !

    Damien

Discussions similaires

  1. Réponses: 0
    Dernier message: 29/08/2014, 10h17
  2. problème de connexion depuis le client
    Par maariem dans le forum Connexions aux bases de données
    Réponses: 0
    Dernier message: 16/03/2010, 18h21
  3. Réponses: 4
    Dernier message: 14/10/2009, 10h52
  4. Problème acces Crystal depuis poste client
    Par jacky01 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 28/07/2009, 12h36
  5. Entier 64 bits sous linux, problème d'affectation
    Par Steki-kun dans le forum Linux
    Réponses: 2
    Dernier message: 13/01/2005, 21h10

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