Ajout génération automatique du WSDL pour eviter les erreurs

This commit is contained in:
Michael RICOIS 2011-03-29 13:44:02 +00:00
parent 4de0962235
commit 1a401be3df
2 changed files with 30 additions and 27 deletions

View File

@ -52,40 +52,40 @@ class ServiceController extends Zend_Controller_Action
require_once $pathClassService.'Entreprise.php'; require_once $pathClassService.'Entreprise.php';
$fichierWsdl = 'Entreprise-'.$version.'.wsdl'; $fichierWsdl = 'Entreprise-'.$version.'.wsdl';
// Fourniture du wsdl // Génération/Founiture du wsdl
if (isset($_GET['wsdl'])) { if ( isset($_GET['wsdl']) || isset($_GET['wsdl-generate']) || isset($_GET['wsdl-auto']) ) {
if (file_exists($fichierWsdl)) { if (file_exists($fichierWsdl)) {
if (!headers_sent()) { if (!headers_sent()) {
header('Content-Type: text/xml'); header('Content-Type: text/xml');
} }
echo file_get_contents($fichierWsdl); echo file_get_contents($fichierWsdl);
} else { } else {
echo "Erreur WSDL inexistant "; // Définition du webservice
} $wsdl = new Zend_Soap_AutoDiscover();
} $wsdl->setComplexTypeStrategy('Zend_Soap_Wsdl_Strategy_ArrayOfTypeSequence');
// Génération du wsdl $wsdl->setOperationBodyStyle( array('use' => 'literal') );
elseif ( isset($_GET['wsdl-generate']) || isset($_GET['wsdl-auto']) ) { $wsdl->setBindingStyle( array('style' => 'document') );
$wsdl->setClass('Entreprise');
// Définition du webservice // Enregistrement du WSDL dans un fichier
$wsdl = new Zend_Soap_AutoDiscover(); if ( isset($_GET['wsdl-generate']) ) {
$wsdl->setComplexTypeStrategy('Zend_Soap_Wsdl_Strategy_ArrayOfTypeSequence'); if (file_exists($fichierWsdl)) {
$wsdl->setOperationBodyStyle( array('use' => 'literal') ); unlink($fichierWsdl);
$wsdl->setBindingStyle( array('style' => 'document') ); }
$wsdl->setClass('Entreprise');
// Enregistrement du WSDL dans un fichier
if ( isset($_GET['wsdl-generate']) ) {
if (!file_exists($fichierWsdl)) {
$wsdl->dump($fichierWsdl); $wsdl->dump($fichierWsdl);
echo "Le fichier $fichierWsdl a été généré"; echo "Le fichier $fichierWsdl a été généré";
} else { } elseif (isset($_GET['wsdl']) && !file_exists($fichierWsdl)) {
echo "ERREUR : Le fichier $fichierWsdl est déjà présent !"; $wsdl->dump($fichierWsdl);
if (!headers_sent()) {
header('Content-Type: text/xml');
}
echo file_get_contents($fichierWsdl);
} }
} // Envoi sur la sortie standard le wsdl
// Envoi sur la sortie standard le wsdl elseif ( isset($_GET['wsdl-auto']) ){
elseif ( isset($_GET['wsdl-auto']) ){ $wsdl->handle();
$wsdl->handle(); }
} }
// Fourniture du service // Fourniture du service
} else { } else {

View File

@ -1,6 +1,5 @@
README README
====== ======
Le webservice est basé sur le ZendFramework pour générer les WSDLs. Le webservice est basé sur le ZendFramework pour générer les WSDLs.
Fichier de configuration Fichier de configuration
@ -22,6 +21,10 @@ Obtenir le WSDL
- Générer le wsdl : http://hostname/service?wsdl-generate - Générer le wsdl : http://hostname/service?wsdl-generate
- Utiliser le WSDL généré : http://hostname/service?wsdl - Utiliser le WSDL généré : http://hostname/service?wsdl
N.B : Le fichier WSDL est généré automatiquement en appelant
http://hostname/service?wsdl afin de ne pas provoquer d'erreur
après une mise en production
Pour définir le mode (vhost d'apache) Pour définir le mode (vhost d'apache)
SetEnv APPLICATION_ENV "development" SetEnv APPLICATION_ENV "development"
SetEnv APPLICATION_ENV "production" SetEnv APPLICATION_ENV "production"