Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
961 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [WebService] Serveur nuSoap / Client Java

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[WebService] Serveur nuSoap / Client Java

n°1069891
la viper
Posté le 03-05-2005 à 08:46:19  profilanswer
 

Bonjour,
 
J'ai réalisé un service web en php et j'essaye de le consommer avec un client java.
Mon client en php basé comme le service web sur nuSoap fonctionne très bien, mais quand je cherche à faire pareil avec mon client java, ça fonctionne moins bien.
Ca vient apparement de la structure des données que je reçois en retour.
Actuellement, quand je consomme un service, je reçois en retour un array(array()) (en php).
 
Du genre:
 
array {
 [0] => array {
       [nom]=>'toto'
       [prenom]=>'titi'
      }
 [1] => array {
       [nom]=>'blublu'
       [prenom]=>'blabla', mis
      }
 [2] => ... etc
}
 
Je comprends que Java n'arrive pas à comprendre du premier coup cette structure de données mais je n'arrives pas la faire reconnaitre.
 
KK'un a-t-il déjà rencontré ce problème?
 
merci d'avance

mood
Publicité
Posté le 03-05-2005 à 08:46:19  profilanswer
 

n°1070114
cesarr89
Posté le 03-05-2005 à 11:01:41  profilanswer
 

Tu reçois pas une structure mais des données au format XML(principes des webservices), tu es sur qu'il ya pa moyen de les extraires??

n°1070177
la viper
Posté le 03-05-2005 à 11:35:11  profilanswer
 

Quand j'utilise mon client php avec nuSoap il arrive à les traiter sans problème, par contre en Java, il me dit qu'en gros il ne sait pas comment parser ce type d'info.
 
Voici le retour exact de mon client Java:
 
Random:10386ad70566c7bd64d3d70011cbafef
[SOAPException: faultCode=SOAP-ENV:Client; msg=The value of the 'http://schemas.xmlsoap.org/soap/encoding/:arrayType' attribute must be namespace-qualified.; targetException=java.lang.IllegalArgumentException: The value of the 'http://schemas.xmlsoap.org/soap/encoding/:arrayType' attribute must be namespace-qualified.]
 at org.apache.soap.rpc.Call.invoke(Call.java:294)
 at com.timetracker.client.WebService.getCustomers(WebService.java:68)
 at com.timetracker.client.SoapClient.main(SoapClient.java:32)
 
A noter que j'arrive très bien à recevoir les résultats de mes fonctions qui retourne du string (le random).  
Donc j'en ai déduit que comme je n'expliquais pas comment était structuré mes types complexes, il n'arrivait pas à le comprendre.

n°1070420
la viper
Posté le 03-05-2005 à 14:12:20  profilanswer
 

up

n°1071809
la viper
Posté le 04-05-2005 à 14:58:15  profilanswer
 

blup :'(

n°1071821
cesarr89
Posté le 04-05-2005 à 15:01:10  profilanswer
 

Mais tu as regardé un peu des exemples d'utilisation de SOAP en JAVA??

n°1072085
la viper
Posté le 04-05-2005 à 16:30:19  profilanswer
 

oui, le problème vient pas de java d'après moi, mais plutôt de mon serveur en php+nusoap :(

n°1072096
cesarr89
Posté le 04-05-2005 à 16:35:29  profilanswer
 

Citation :

at com.timetracker.client.SoapClient.main(SoapClient.java:32)  


 
Tu serais pas en train de mélanger SOAP et nuSOAP??
enfin peut etre qu'on peut les mélanger.

n°1072170
la viper
Posté le 04-05-2005 à 17:23:52  profilanswer
 

nuSoap est une librairie qui fait du Soap.
dans mon cas, c'est mon client java qui me dit qu'il y a un soucis pour comprendre la structure de ma données complexe que mon service web lui envoi. En tout cas, c'est ce que j'en comprends.
Donc j'en que c'est du coté du serveur qu'il faut que je déclare ça et non pas du coté du client (sinon y'a plus trop d'interet aux service web).. mais je ne sais pas comment faire ça avec la librairie nuSoap

n°1072173
cesarr89
Posté le 04-05-2005 à 17:26:10  profilanswer
 

Ah mon avis tu t'es planté dans la définition de ton WebService.....tu as du mal définir le tpe de retour

mood
Publicité
Posté le 04-05-2005 à 17:26:10  profilanswer
 

n°1072587
la viper
Posté le 05-05-2005 à 00:26:04  profilanswer
 

sachant que j'arrive à le faire fonctionner en utilisant un client écrit en php-gtk/nusoap..
bref, j'espere plus trouver un exemple qu'une explication :-)
mon topic voulait aller dans ce sens..
parce qu'effectivement je pense avoir mal défini la variable de retour.

n°1075390
la viper
Posté le 08-05-2005 à 11:19:27  profilanswer
 

j'ai testé 3 trucs:
1- mon service renvoie un string --> ça fonctionne
2- mon service renvoie un array de string --> ça fonctionne
3- mon service renvoie un array d'array --> ça ne fonctionne pas.
 
comment faire pour déclarer mon modele de données avec la librairie nuSoap??

n°1075733
gabouel
Posté le 08-05-2005 à 21:25:22  profilanswer
 

Je suis loin d'être un expert en Web services mais vu le message d'erreur de ton client java, ca aiderait pas de définir le type de retour dans le WSDL ?


Message édité par gabouel le 08-05-2005 à 21:26:49
n°1075905
la viper
Posté le 09-05-2005 à 09:30:47  profilanswer
 

gabouel .. si c'est exactement ce que je cherche à faire :( mais je ne sais pas comment s'y prendre avec la librairie nuSoap :(
dés que je cherche à faire du wsdl mon service web ne fonctionne plus :(

n°1076391
cesarr89
Posté le 09-05-2005 à 14:53:46  profilanswer
 

tu as cherché un peu sur google??
y'a plein de doc sur nusoap:
http://reseau.erasme.org/article.php3?id_article=349

n°1076695
la viper
Posté le 09-05-2005 à 17:58:40  profilanswer
 

dans ce cas ci, il s'agit d'un exemple avec des variables simples. Je n'ai pas de problèmes avec les variables simples mais avec les variables complexes.. ce n'est pas grâve, j'ai effectivement une doc un peu plus commentée que les autres sur les complexType et wsdl. Merci.

n°1079748
cesarr89
Posté le 11-05-2005 à 16:36:09  profilanswer
 

Alors ca avance?

n°1080324
la viper
Posté le 11-05-2005 à 22:50:08  profilanswer
 

oui :)
voilà après déclaration wsdl:
$server->wsdl->addComplexType(
    'Customers',
    'complexType',
    'array',
    'all',
    '',
    array(
     array(
    'id' => 'xsd:string',  
    'name_customer' => 'xsd:string',
    'url' => 'xsd:string',
    'codeimg' => 'xsd:string',
    'doc' => 'xsd:string',
    )
  )
  );
 
sous cette forme et mon service retourne :
$server->register('listCustomers',
    array('randomid' => 'xsd:string'),
    array('return' => 'tns:Customers'),
    'urn:TimeTracker',
    'urn:TimeTracker#listCustomers',
    'rpc',
    'encoded',
    'Liste des clients'
);
 
ça marche très bien avec un client php sous nuSoap et avec java pour les fonctions retournant des variables simple (string). Je n'ai par contre pas réussi encore à ce que mon client java puisse lire le variable complexe :(
voici le code que j'utilise:
SOAPMappingRegistry smr = new SOAPMappingRegistry();
  BeanSerializer beanSer = new BeanSerializer();
  smr.mapTypes(Constants.NS_URI_SOAP_ENC,
               new QName("urn:TimeTracker", "TimeTracker" ),
               Activities.class, beanSer, beanSer);
 
  call.setSOAPMappingRegistry(smr);
  call.setTargetObjectURI("urn:TimeTracker" );
   
  call.setMethodName("listActivities" );
  Vector params = new Vector();
     params.addElement(new Parameter("randomid", String.class, this.random, null));
     call.setParams(params);
  response = call.invoke(this.url, "" );

n°1700528
doc le mey​ourt
endomorphisme.
Posté le 11-03-2008 à 14:34:51  profilanswer
 

Je deterre ce sujet...
 
Je fais le même travail que toi, et j'ai le même souci.
Tu pourrais poster ton code complet s'il te plait?
 
Merci d'avance.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [WebService] Serveur nuSoap / Client Java

 

Sujets relatifs
[JAVA] Insertion/Suppresion d'une ligne dans une Jtableincorporer chat java dans du php
Probleme client en perlUn "chat" (tchat) entre client Flash avec serveur coldfusion.
Quel modèle objet pour un "client-serveur asynchrone" ?[JAVA] remplacer * par % dans un String?
[Java] Trouver un charactère dans un tableau....[résolu][JAVA]Obtenir un sous arbre
Plus de sujets relatifs à : [WebService] Serveur nuSoap / Client Java


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR