2013-06-18 4 views
2

Je dois créer un webservice wsdl en utilisant ColdFusion pour être utilisé par un outil 'externe'. Le problème auquel je fais face est que cet outil externe n'accepte pas les webservices qui utilisent des types complexes (le wsdl ne devrait obtenir et renvoyer que des valeurs simples sous forme de chaîne ou d'entier, mais pas de tableau, de structure ou d'obect).ColdFusion: créer un wsdl sans aucun type complexe inclus

Il semble que coldfusion ajoute automatiquement un paart en utilisant des types complexes avec wsdl.

Ma question est: Y at-il un moyen de générer un webservice wsdl dans ColdFusion qui ne comprend aucune partie de type complexe (et donc être utilisable avec mon outil « externe »)

Merci beaucoup

+0

J'ai vu quelque chose de similaire dans le fait que Lotus Notes n'était pas capable de consommer n'importe quel service web écrit dans ColdFusion, même un simple type Hello World. Si vous écrivez un webservice qui ne prend aucun argument et renvoie une chaîne, pouvez-vous l'appeler avec votre outil externe? –

+0

Non, j'ai «prototypé» un wsdl qui contient juste une fonction qui renvoie simplement un booléen. Il échoue parce que Coldfusion ajouter des fonctions ou un élément whaterver en utilisant des données complexes à ma simple fonction de test fictif –

+0

Par ailleurs oui j'ai essayé avec un webservices writtent dans une autre technologie et il y a des travaux bien. les problèmes viennent du fait que ColdFusion ajoute des éléments 'complexes' spécifiques dans le wsld. Je sais utiliser une autre langue (ie java) comme un wrapper est une solution. mais ce n'est pas une solution idéale. –

Répondre

1

Vous pouvez utiliser l'attribut wsdlfile de la balise cfcomponent pour utiliser un fichier WSDL prédéfini au lieu d'utiliser le fichier WSDL généré par ColdFusion.

Sur la page Producing WSDL files:

Pour un contrôle complet du WSDL, les utilisateurs avancés peuvent spécifier l'attribut cfcomponent de wsdlFile utiliser un fichier WSDL prédéfini.

Et du cfcomponent documentation page:

wsdlFile - en option - Un fichier WSDL correctement formaté pour être utilisé au lieu de WSDL généré par ColdFusion.

+0

Ouais, j'ai déjà dû le faire pour permettre aux clients .NET de consommer des services Web CF. Vous pouvez commencer en permettant à CF de générer le WSDL, puis enregistrez-le et modifiez-le. Le seul inconvénient de cette approche est que l'URL du point de terminaison est dans le WSDL, vous devez donc faire attention au type de client qui le consomme et si oui ou non il permet à l'URL d'être spécifié via un autre chemin ou s'il est toujours lit le point de terminaison dans le WSDL (comme le fait CF), auquel cas vous devrez éditer le WSDL pour chaque déploiement – barnyr

Questions connexes