2010-01-16 8 views
4

Je travaille avec un fournisseur tiers qui, malheureusement, nous oblige à configurer un serveur SOAP pour gérer les demandes de leur part. J'ai de la difficulté à trouver la meilleure façon d'y arriver. Une limitation que j'impose est qu'elle s'exécute comme un gestionnaire mod_perl2. Après quelques recherches, j'ai trouvé que le meilleur moyen était d'utiliser XML :: Compile et ses classes SOAP, mais j'ai du mal à y faire face. Une partie du problème est ma compréhension limitée de SOAP et la documentation pour la plupart des modules me semble un peu cryptique. Donc, quelqu'un peut-il me donner des pointeurs, un exemple de code, quoi que ce soit?Comment créer un serveur SOAP en Perl?

EDIT: nous avons également reçu un fichier WSDL à utiliser, et ce n'était pas compatible avec SOAP :: WSDL ("type global non trouvé trouvé dans ... Ressemble à un WSDL rpc/literal, qui n'est pas supporté par SOAP :: WSDL)

EDIT: XML :: Compile :: SOAP se plaint de "codage RPC non supporté par cette version" lors de l'utilisation du fichier WSDL avec XML :: Compile :: WSDL11 Peut/ne devrais-je pas me soucier du fichier WSDL

+0

Pour votre information, je me suis retrouvé avec une solution qui était beaucoup moins propre que ce que je voulais .. en utilisant SOAP :: Parser pour extraire juste les informations dont j'avais besoin et utilisé un template du XML de sortie remplissant la valeur qui devait être là. Je suis toujours curieux de savoir s'il existe un moyen facile de faire un simple serveur SOAP à partir d'un fichier WSDL qui est pour la plupart indépendant du serveur web. – kbosak

+0

NOTE: SOAP :: Parser était un mauvais choix, même si cela fonctionne. C'est un ancien module que j'ai dû installer depuis la source car il avait mod_perl comme dépendance. Il a également cassé un SOAP :: Lite pour moi. – kbosak

Répondre

3

Si vous avez une compréhension limitée de SOAP, commencez à lire sur SOAP avant de vous en soucier de l'implémenter.Il y a beaucoup de SOAP tutorials là-bas.La plupart de la documentation semble probablement cryptique à vous parce que Vous ne savez pas déjà SOAP.

Ce n'est pas si compliqué qu'un processus. Ce n'est pas si différent que n'importe quelle autre programmation Web quand il s'agit de grandes étapes:

  • Vous obtenez une requête SOAP, qui est un peu de XML.
  • Vous extrayez le XML pour savoir quoi faire.
  • Vous avez compilé du code XML à envoyer en réponse.
  • Vous renvoyez la réponse.

XML::Compile prendra soin de la plupart des détails pour vous. Avant de commencer à écrire votre propre serveur, vous pouvez envisager d'écrire un client pour un serveur SOAP existant juste pour vous exercer.

+0

J'ai effectivement regardé XML :: Compile :: SOAP mais je n'ai toujours pas compris comment lier tout cela ensemble. De plus, je veux utiliser le fichier WSDL qui nous a été fourni. – kbosak

+3

Ne commencez pas avec le code. Commencez par en apprendre davantage sur SOAP. Vous n'allez pas comprendre le code jusque-là. –

+0

Je comprends les bases de SOAP et du WSDL. J'espérais obtenir des exemples simples ou des pointeurs sur les modules à utiliser et comment les utiliser. – kbosak