transmettre un fichier directement??? [SOAP] - Divers - Programmation
Marsh Posté le 09-01-2003 à 18:19:17
ya moyen de faire ca avec des attachement aux requête SOAP mais je ne connais pas du tout ce truc là.
Marsh Posté le 09-01-2003 à 18:57:06
ouais, j'ai vu ça qqpart, ça s'appelle SWAT (SOAP With Attachment), mais je préfèrerais encapsuler mon fichier!
le pb, c que je sais pas comment le faire!!
Marsh Posté le 09-01-2003 à 19:15:24
euuuuhh ... je peux dire une connerie ?
j'ai travaillé avec Apache SOAP (java)
je me permets de poster paske SOAP, c'est fait pour être interopérable .... en théorie .... donc je suppose que ça doit être à peu près le même mécanisme pour tous les langages ...
j'ai aussi fait un client en c#
tu dois avoir des modules perl qui s'occupe d'encapsuler ton fichier dans du XML. toi tu t'occupes de presque rien, juste d'indiquer l'URL, les paramètres (nom du service, entrées...)
et tu envoies...
j'ai trouvé ça viteuf.
Moi j'y pige que dalle, toi tu devrais p'tre comprendre...
Usage of this library should be pretty easy. SOAP client:
use SOAP::Lite;
print SOAP::Lite
-> uri('http://www.soaplite.com/Temperatures'
-> proxy('http://services.soaplite.com/temper.cgi'
-> f2c(32)
-> result;
Marsh Posté le 09-01-2003 à 20:15:05
t'inquiètes, tu dis pas de connerie!
je sais me servir de la base de SOAP, et c vrai que le principe est l'encapsulation par les modules perl!
le pb est que par exemple, j'ai un client qui veut envoyer un fichier à mon soft via une requête SOAP, et je sais pas cmment lui dire que le fichier du client, tu l'encapsule, tu le transmet, tu le décapsule et tu le traite!!
l'exemple que tu donne est une requête SOAP de la doc!! ça c facile, two fingers in the nose!!
mais merci qd même!!
Ps: je demande pas forcément de réponse pour le Perl en particulier, mais au moins le principe! j'essaierais de me débrouiller avec ça!!
merci!
Marsh Posté le 09-01-2003 à 22:11:24
Ce que tu as en Perl, ta fonction, si j'ai bien compris, c'est ton service ?
chui p'tre un peu relou avec mon Java, mais pourquoi ne pas faire un client SAOP en Java ?
c super fastoche ..
pour ce qui est de l'encapsulation, sérilisation, (en Java je parle), tout est géré par les méthodes Java.
en entrée de ta méthode Java (c surement pareil en Perl) tu passes une chaine de caractères (une String en Java) et elle (la méthode)te sérialize tout ça, te la fous automatiquement dans un fichier XML avec les tags qui vont bien et le t'envoie à l'adresse que tu lui a indiqué.
tout ce que tu as à faire, c'est lui indiquer l'URL du service, le nom du service et le nom de la méthode invoquée
tu codes pas une ligne de parser pour créer ton fichier XML !
c magique et transparent ...
et si tu as un sniffer réseau, tu regardes et tu vois circuler un fichier XML (paske, l'inconvénient de SOAP, c que tout passe en "clair", donc attention aux infos que tu véhicules ...)
Si par contre tu veux coder un Serveur SOAP,il te faut un serveur ... ( logique) et il te faut déployer ton service grâce à un descripteur de déploiment (qui indiques le nom du service, ses méthodes) pour que le serveur puisse faire le mapping entre les requ^tes du client et son service ....
voilà
bon, j'ai ratissé large .... j'espère que j'aurais répondu à au moins une de tes questions ...
ou pas du tout
si tu as des questions, n'hésite pas
Marsh Posté le 09-01-2003 à 22:14:05
fais pas gaffe aux fautes d'orthographe, je viens de voir "SAOP" .... tu vas me prendre pour un charlatan ...
Marsh Posté le 09-01-2003 à 22:19:06
merci de tes explications, mais je sais déjà tout ça !!!! [:sol:]
j'ai déjà un servie et un client, et le client envoie un string encapsulé vers le services, et ne t'inquiète pas, c pas moi ki écrit le XML, c le module perl ad hoc!!
non, ce que je voudrais, c envoyer le fichier sans avoir besoin de l'ouvrir, de lire son contenu, de le concaténer dans une variabe string et de l'envoyer au service par SOAP!!
ce que je veux savoir, c s'il existe une méthode (même en java, paske si elle existe en java, elle a son équivalent dans les autres langages!!) qui encapsule directement le fichier et l'envoie au service.
--edit--
et t'inquiètes pas, t pas lourd avec ton java, j'en fais aussi! mais pour mon truc, perl est plus simple (et je le connais bcp mieux!!)
Marsh Posté le 09-01-2003 à 22:35:05
putain, je suis méga loooonnng à la détente moi ..
okay, tu vaux envoyer un message SOAP avec un type MIME ?
(un message attaché koa ...)
dsl, j'ai jamais fait ça.
mais j'ai ce lien
http://www.w3.org/TR/SOAP-attachments
et celui là (Google: SOAP+MIME+Perl)
http://search.cpan.org/src/BYRNE/SOAP-MIME-0.55-4/
qui a l'air d'être un exemple pour Perl
(j'ai pas trop regardé)
alors p'tre que je suis encore à côté de la plaque ...
mais ça pourrait p'tre t'aider
Marsh Posté le 09-01-2003 à 23:21:09
si tu veux être sûr de ton coût et que t'as pas peur des gros volumes, tu lit ton fichier, tu le codes en Base64, et tu en fais une chaine de caractères que tu balances dans ta requête SOAP. et tu fais la même chose dans l'autre sens à la reception
Marsh Posté le 09-01-2003 à 23:38:39
benou ->tu lit ton fichier, tu le codes en Base64, et tu en fais une chaine de caractères que tu balances dans ta requête SOAP
je crois que c'est ce qu'il ne veut pas faire justement .... ouvrir le fichier
Marsh Posté le 10-01-2003 à 08:46:27
ok j'avais mal lu. mais ca veut dire quoi ca : qui encapsule directement le fichier et l'envoie au service.
encapsuler un fichier ???
y a pas de magie hein, si tu veux envoyer le contenu du fichier, va bien falloir que tu le lises ...
Marsh Posté le 10-01-2003 à 08:48:18
bingo chichos! je ne veux pas ouvrir le fichier!!
merci pour les liens, je vais regarder ça dès que j'ai un moment!
je vous tiens au courant!!!
Marsh Posté le 10-01-2003 à 09:00:21
ce que tu veux c'est bien envoyer le fichier non, son contenu ???
si oui, va forcément falloir que tu l'ouvres !
Marsh Posté le 10-01-2003 à 09:13:33
ben non, justement, avec les attachment, pas besoin de l'ouvrir!!
merci chichos pour le lien! ça marche!
enfin ça marche!
j'arrive à envoyer le fichier en attacgment, mais pour le récupérer dans mon service, c une autre histoire!!!
Marsh Posté le 10-01-2003 à 09:28:08
peut être que TOI tu l'ouvres pas le fichier, mais il est forcément ouvert quelque part pour pouvoir lire son contenu !!!
Marsh Posté le 10-01-2003 à 09:36:23
nan, il n'est ouvert que lors de sa réception par le serveur SOAP, comme si tu envoyais un email avec un fichier attaché!
Enfin je dis ouverts par le serveur SOAP.... il le sera quand j'aurais trouvé comment le faire!!!
Marsh Posté le 10-01-2003 à 09:40:42
j'avais jamais essayé avec type MIME.
je suis content que ça marche.
benou-> avec type MIME, le développeur n'a pas besoin d'ouvrir le fichier, c'est bien un message SOAP avec attachement ... après ce que font les méthodes SOAP, on s'en balance un peu (qu'elles ouvrent le fichier ou non ... ce qui est presque sûr d'ailleurs)... pour l'urilisateur c transparent (comme la sérialisation...etc)
par contre, si l'utilisateur ouvre le fichier avant de l'envoyer, c'est plus du tout un type MIME mais message SOAP banal ...
quand tu dis "il faut bien que tu l'ouvres"
c qui le tu ? les méthodes SOAP ou l'utilisateur ?
@+
Marsh Posté le 10-01-2003 à 13:13:25
au passage, qqun sait-il ce qu'est une "unblessed reference"??
y'a mon module qui me crache à la gueule avec cette erreur!
Marsh Posté le 10-01-2003 à 14:02:48
argh à l'aide, j'ai un pb!!
j'ai trouvé ce quétait le unblessed : en fait, il transforme le tableau en objet avant d'appeler différentes méthodes dessus.
bon ok, mais moi je lui demande pas d'appliquer cette méthode! du coup, je me demande si ce module (SOAP::MIME) n'est pas buggé!
qqun l'a-t-il déjà utilisé et réussi à le faire marcher???
Marsh Posté le 10-01-2003 à 14:19:25
Le problème est que la norme SOAP n'est pas fixée !
en java il faut, par exemple, faire attention de bien télécharger les mêmes soap.jar pour une bonne compréhension entre le serveur et le client. (ça peut engendrer des tags différents dans le fichier XML)
alors il se peut qu'il y ait des implémentations qui soient encore à moitié buggés ou foireuses ou qui implémentent pas la totalité de la norme...
quand tu dis que SOAP::MIME est peut être buggé, c'est pas impossible...
faut aller voir les specif de SOAP::Lite et SOAP::MIME, télécharger des exemples, voir sur des forums si il y a des retours d'exp ...
mais ça tu dois déjà le savoir .... peut rien faire de +, désolé
Marsh Posté le 10-01-2003 à 14:26:34
ben pour l'instant, je teste le client et le serveur sur la même machine! donc pas de pb de conflit de version
sinon, ben j'ai cherché une liste de diffusion et la seul qui existe est chez yahoo et en plus ces cons veulent pas m'enregistrer!!
m'enfin, merci bcp pour ton aide!!!
je continue ma quête!
Marsh Posté le 10-01-2003 à 16:03:20
benou a écrit : |
je compatis
Marsh Posté le 10-01-2003 à 16:05:56
benou a écrit : |
T'es trop pragmatique. Ca pourrait être une utilisation intéressante des capacité psychiques des ordinateurs récents.
Marsh Posté le 10-01-2003 à 16:07:15
chichos a écrit : Le problème est que la norme SOAP n'est pas fixée ! |
en effet c'est pas fixé du tout
http://www.w3.org/TR/2002/CR-soap12-part1-20021219/
Extasy? Alcool? Emphet?
Mais y a Soap 1.0, 1.1, 1.2 et y a des implémentations qui sont pas du tout complètes ni correctes, ca c'est un autre problème mais la norme par définition est fixe vu que c'est une norme
Marsh Posté le 10-01-2003 à 16:30:30
ahlala! arrêtez de vous battre pour du vocabulaire (même si c'est important) et aidez-moi!!!!
non c vrai koi, j'arrive même pas à trouver des gens qui ont déjà utilisé ça!!
Marsh Posté le 10-01-2003 à 16:48:35
arghbis a écrit : ahlala! arrêtez de vous battre pour du vocabulaire (même si c'est important) et aidez-moi!!!! |
me bat pas moi ....
c vrai que c important le vocabulaire, mais je crois que l'idée importante a été formulée: c tout nouveau et pas toujours bien implémenté ...
en +, le document du lien est un document W3C Proposed Recommandation et pas une Recommandation... comme le veux le cycle de vie d'un document W3C ... donc ton SOAP 1.2 est toujours susceptible de changer ... (plus beaucoup maintenant, certes...)
Marsh Posté le 10-01-2003 à 16:52:28
chichos a écrit : |
Dans le genre mauvaise foie... T'as vu la date? 19/12/2002, Soap 1.2 c'est pas encore fini
http://www.w3.org/TR/SOAP/
Si tu veux un truc officiel fini et qui bouge pas
Marsh Posté le 10-01-2003 à 17:00:15
zion a écrit : |
désolé, c'était plus fort que moi, j'ai cliqué sur ton lien et j'ai vu l'état du doc ...
Mais en tous cas, je suis d'accord avec toi sur les termes... de toutes façons je crois que l'essentiel n'est pas là ..
désolé argbis, mais utilser SOAP::MIME... jamais fait...
Marsh Posté le 10-01-2003 à 19:23:02
lorill a écrit : |
Marsh Posté le 09-01-2003 à 18:16:02
salut tout le monde!
J'aimerais savoir comment on fait pour transmettre un fichier à un prog via une requête SOAP??
je suppose qu'il faut le mettre dans un container, mais je vois pas comment, rt pis aussi, comment je le résupère dans mon prog??
pour l'instant, je me contentait d'uploader le fichier avec un formulaire HTML+PHP et j'envoyais le path du fichier dans ma requête.
alors, des idées?
merci
Ps: je bosse en Perl, avec SOAP::Lite