Web service RPC [Résolu]

Signaler
Messages postés
71
Date d'inscription
mardi 6 juillet 2004
Statut
Membre
Dernière intervention
10 octobre 2008
-
Messages postés
71
Date d'inscription
mardi 6 juillet 2004
Statut
Membre
Dernière intervention
10 octobre 2008
-
    Bonjour a tous,
j'ai developpe un web service avec le protocole RPC en .NET 1.1
Ce WS fonctionne bien lorsque j'utilise un client .NET mais des lors que j'utilise un client java tous mes caracteres accentues pour mon parametre d'entree se transforment en "?" . Y a t-il une manipulation speciale?
Merci d'avance

14 réponses

Messages postés
71
Date d'inscription
mardi 6 juillet 2004
Statut
Membre
Dernière intervention
10 octobre 2008

j'ai trouvé..... il s'agit des headers https dans l'un on a : <content-type>text/xml</content-type> et ca ne marche pas et dans l'autre on a : <content-type>text/xml; charset=utf-8</content-type> et là ca marche....

merci pour ton aide en tout cas :)
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
vérifie que l'encodage est le même en Java et C#...

Normalement, c'est utf-8...

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
71
Date d'inscription
mardi 6 juillet 2004
Statut
Membre
Dernière intervention
10 octobre 2008

oui effectivement mais en fait je teste a partir d'un client de test qui genere des classes proxys a partir de mon wsdl..... donc a priori cela fonctionne de la meme facon non?
et en .NET l'encodage est bien precise dans le web.config ou y a -til autre chose a verifier... ?
merci d'avance
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
Normalement en haut de l'ASMX tu dois avoir l'encodage de préciser...

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
71
Date d'inscription
mardi 6 juillet 2004
Statut
Membre
Dernière intervention
10 octobre 2008

cela ne semble pas fonctionner...a quel niveau dans l'asmx.cs mets tu l'encodage?
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
il me semblait que c'était dans le fichier asmx même.

Mais bon... à mon avis, c'est au niveau Java qu'il faut que tu fasses la modification...

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
71
Date d'inscription
mardi 6 juillet 2004
Statut
Membre
Dernière intervention
10 octobre 2008

pas forcément puisque si je mets une sonde pour voir les trames soap qui circulent, juste avant d'entrer dans le .NET les caracteres sont encore bien accentués, ce n'est qu'apres que j'obtiens mes "?" :/
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
houla... le WebService est en C# ou en Java ?

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
71
Date d'inscription
mardi 6 juillet 2004
Statut
Membre
Dernière intervention
10 octobre 2008

eh bien le web service est developpe en C#
pour tester j'utilise un client java et je mets une sonde entre les deux entre le java et la sonde j'ai mes accents, et entre ma sonde et mon WS .NET je perds les accents :(
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
euh... ce n'est pas ta sonde qui modifie le flux ???

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
71
Date d'inscription
mardi 6 juillet 2004
Statut
Membre
Dernière intervention
10 octobre 2008

oh non c'est un bete soap toolkit qui se contente de tracer les trames soap...donc de ce cote la je suis sur
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
as-tu essayé de changer l'encodage ?

es-tu sûr qu'il soit le même en C# et en Java ?

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
71
Date d'inscription
mardi 6 juillet 2004
Statut
Membre
Dernière intervention
10 octobre 2008

apres plusieurs tests voici les entetes de trames SOAP envoyées par le client . NET et le client java

en .NET :

<?xml version= "1.0" encoding="utf-8"
?>

[# -]<soap:Envelope xmlns:soap=" http://schemas.xmlsoap.org/soap/envelope/ " xmlns:soapenc ="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns= " http://scope/wsdl "
xmlns:types ="http://scope/wsdl/encodedTypes"
xmlns:xsi" http://www.w3.org/2001/XMLSchema-instance " xmlns:xsd"http://www.w3.org/2001/XMLSchema">

[# -]<soap:Body soap:encodingStyle= " http://schemas.xmlsoap.org/soap/encoding/ ">

[# -]<tns:ConsulterCodePackage>

 <IdentifiantCodePackage
xsi:type ="xsd:string">eté</IdentifiantCodePackage>

 </tns:ConsulterCodePackage>

 </soap:Body>

 </soap:Envelope>

en java :

 <?xml
version= "1.0" encoding="UTF-8" ?>

[# -]<SOAP-ENV:Envelope xmlns:SOAP-ENV=" http://schemas.xmlsoap.org/soap/envelope/ " xmlns:SOAP-ENC ="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd= " http://www.w3.org/2001/XMLSchema " xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance" SOAP-ENV:encodingStyle= " http://schemas.xmlsoap.org/soap/encoding/ ">

[# -]<SOAP-ENV:Body>

[# -]<ser-root:ConsulterCodePackage
xmlns:ser-root ="http://scope/wsdl"
SOAP-ENC:root= " 1 ">

 <IdentifiantCodePackage
xsi:type ="xsd:string">eté2</IdentifiantCodePackage>

 </ser-root:ConsulterCodePackage>

 </SOAP-ENV:Body>

 </SOAP-ENV:Envelope>

petit rappel depuis le client .NET je recois bien comme parametre eté et depuis le client java je recois et??2

Je constate egalement que utf-8 est marque en minuscule en .NET t en majuscule en java et que l'encoding est definitivement la premiere fois dans l'enveloppe et la seconde fois dans le body....malheureusement je ne sais pas si cela a de l'importance ou non et surtout comment modifier cela :/
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
je pense pas que ça change grand chose... pour moi les 2 fichiers sont identiques.
je sèche là.

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]