IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

soap & symfony 1.2


Sujet :

Symfony PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 88
    Par défaut soap & symfony 1.2
    Bonjour les amis,

    Je suis sur une application qui expose un web servie soap en utilisant le plugin sckWebServicePlugin de symfony 1.2.
    Le web service fonctionne correctement. Jusqu’à la tout vas bien. Dans le web service j'ai une méthode qui prend 2 paramètre quelle reçoit via la requête en utilisant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $request->getParametr('param1');
    $request->getParametr('param2');
    Cependant j'ai besoin de recevoir un 3ème paramètre dans la requête. Pour cela :

    Pourriez me préciser la meilleur façon de le faire?

    Merci d'avance!

  2. #2
    Membre émérite Avatar de kenny.kev
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 646
    Par défaut
    Le plugin que tu as écrit n'existe pas.

    Normalement, tu as un Readme dans ce plugin, il t'explique comment faire.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 88
    Par défaut
    Bonjour et merci pour votre réponse kenny.

    Le plugin utilisé en fait c'est ckWebService. Sachant que j'ai ajouté le nouveau paramètre dans wsdl ainsi da le module.yml ainsi l'annotation dans la doc de la méthode qui attend ce paramètre et j'ai vider le cache.
    Je me demande si ça deverait marcher ainsi sans aucune autre manipulation? Et si je dois faire une manipulation que j'ai pas faite, dans ce cas laquelle?
    est ce qu'il faut obligatoirement régénérer le wsdl?

    Merci d'avance.

  4. #4
    Membre émérite Avatar de kenny.kev
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 646
    Par défaut
    Comme indiqué dans le Readme (que tu trouve dans le plugin aussi) il faut que tu déclare dans commentaire de la méthode ensuite tu exécutes la commande suivant en fonction de tes besoin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    symfony webservice:generate-wsdl frontend MathApi http://localhost/

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 88
    Par défaut
    J'ai fais exactement ce que vous m'avez recommandé mais cela ne marche toujours pas!!!
    En fait j'ai crée un fichier module/conf/module.yml dans lequel j'ai mis ceci

    soap:
    getSomme: { parameter: [param1, param2, param3], result: { class: ckPropertyResultAdapter, param: { property: result } } }

    et j'ai juste ajouter param2 dans ce fichier et je veux que ce soit dans cette ordre mais quand j'envoie la requête avec soapUI alors je reçois ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <result>
                <error>-4</error>
                <errormsg>Des paramètres sont invalides dans la requête (param3)</errormsg>
             </result>


    qu'en pensez vous!!!?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 88
    Par défaut
    De plus :
    si je permute param2 et param3 dans le fichier module.yml c-à-d j'ajoute le nouveau paramètre (param2) à la fin de la listes des paramètres (voir en bas), le web service répond seulement je n'arrive pas à récupérer le paramètre ajouter (param2) depuis la requête avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    soap:
    getSomme: { parameter: [param1, param3, param2], result: { class: ckPropertyResultAdapter, param: { property: result } } }

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 88
    Par défaut

  8. #8
    Membre émérite Avatar de kenny.kev
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 646
    Par défaut
    La doc est claire ce c'est pas à vous ce modifier ce fichier.

    Au dessus de la méthode concerné, il ajouter le @param nameParam dans les commentaires.
    Ensuite générer le tout avec la commande que j'ai copié dans mon post précédent.

    symfony webservice:generate-wsdl "Nom de l'appli" "Nom de la méthode WS" "l'url pour y accéder"

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 88
    Par défaut
    Quand vous dites c'est pas à moi de modifier le fichier module.yml
    alors il sera généré avec le genarate:wsdl?

    Car pour le moment c'est moi qui l'avais créé dans

    modules/monModule/conf/moduole.yml

    sinon j'ai fais exactement comme expliquer dans la documentation officielle de symfony, j'ai bien ajouté dans la doc de la meéthode
    /**
    * @param int $param2
    *
    */

    et j'ai exécuté la commande de génération de wsdl et tout c'est bien passé le wsdl est bien correcte ainsi que la création du handler etc... seulement dans la méthode appelé je n'arrive pas à récupéré ce nouveau paramètre!!!?.????

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 88
    Par défaut
    Je viens de relancer la cmd de génération du wsdl en supprimant module.yml le résultat il n y a pas création du module.yml j'ai du l'ajouter pour récupérer certains paramètres mais toujours pas la nouvelle ajoutée....

  11. #11
    Membre émérite Avatar de kenny.kev
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 646
    Par défaut
    Ce que je ne comprends c'est que si le WS existait déjà alors il y a juste a ajouter le champ dans les commentaires car tout était déjà configuré.

    Pourrez-vous montrer l'action en question ?

    Et êtes-vous sur des parametres passé à la tâche ?

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 88
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    /**
    	 *
    	 *
    	 * @WSMethod(name='AddAcces', webservice='CertiSMS')
    	 *
    	 * @param string $codeApplication code application
    	 * @param string $identifiant identifiant
             * @param int $indicatifRegional indicatif Regional
    	 * @param string $url url
    	 * @param CParametre[] $parametres
    	 * @param string $texteOK
    	 *
    	 * @return CSResult The result
    	 */
    	public function executeAddAcces($request)
    	{
    		/*$this->logMessage(__FUNCTION__.":". $_SERVER["SSL_CLIENT_CERT"],'debug');
    		 if($_SERVER["SSL_CLIENT_CERT"]==""){
    			$this->result = new CSResult(errors::$ERROR_UNKNOWN," Authentification erreur ");
    			return sfView::ERROR;
    			}*/
    		$identifiant = $request->getParameter('identifiant');
        	$indicatifRegional = $request->getParameter('indicatifRegional');
    		$url = $request->getParameter('url');
        $codeApplication = $request->getParameter('codeApplication');
    		//$parametres = $request->getParameter('parametres');
    		//$texteOK = $request->getParameter('texteOK');

    La tâche ou ma requête que je utilise avec soapUI est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://10.10.1.219:888/">
       <soapenv:Header/>
       <soapenv:Body>
          <ns:AddAcces>
             <codeApplication>6d52872b810253a64f54ec4a9af7d0eb793689c2</codeApplication>
             <identifiant>0755443322</identifiant>
             <indicatifRegional>33</indicatifRegional>
             <url>http://10.10.1.219:777/test</url>
             <parametres>
                <!--Zero or more repetitions:-->
                <item>
                   <name>?</name>
                   <value>?</value>
                </item>
             </parametres>
             <texteOK>?</texteOK>
          </ns:AddAcces>
       </soapenv:Body>
    </soapenv:Envelope>

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 88
    Par défaut
    Bonjour tous,

    Et voici les logs quand je souhaite afficher les paramètres passer dans la requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    executeAddAcces;soap;INFO;0;indicatifRegional = 
    executeAddAcces;soap;INFO;0;codeApplication = 6d52872b810253a64f54ec4a9af7d0eb793689c2
    executeAddAcces;soap;INFO;0;identifiant = 0760494312
    executeAddAcces;soap;INFO;0;url = http://10.10.1.219:777/test
    On voit bien que je récupère bien les autres params mais pas indicatifRegional!!!??

    Merci d'avance pour votre réponse.

  14. #14
    Membre émérite Avatar de kenny.kev
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 646
    Par défaut
    En fait c'est la tâche symfony que je veux voir, quel est la commande symfony que vous faites ?

    Pourriez-vous mettre le wsdl qui est concerné par cette méthode ?

    soapUI n'est pas utile car ne remonte pas les erreurs php.

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 88
    Par défaut
    La tâche symfony que j'ai utilisé est la suivante :

    php symfony webservice:generate-wsdl SOAP MySoap http://10.10.1.219:888/

    Sachant que SOAP est dans apps et MySoap c'est mon web service

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 88
    Par défaut
    Et voici ce que j'ai mi dans la doc de l'action du ws :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    /**
    	 *
    	 *
    	 * @WSMethod(name='AddAcces', webservice='MySoap')
    	 *
    	 * @param string $codeApplication code application
    	 * @param string $identifiant identifiant
             * @param int $indicatifRegional indicatif Regional
    	 * @param string $url url
    	 * @param CParametre[] $parametres
    	 * @param string $texteOK
    	 *
    	 * @return CSResult The result
    	 */
    	public function executeAddAcces($request)
    	{
    		/*$this->logMessage(__FUNCTION__.":". $_SERVER["SSL_CLIENT_CERT"],'debug');
    		 if($_SERVER["SSL_CLIENT_CERT"]==""){
    			$this->result = new CSResult(errors::$ERROR_UNKNOWN," Authentification erreur ");
    			return sfView::ERROR;
    			}*/
    		$identifiant = $request->getParameter('identifiant');
        	$indicatifRegional = $request->getParameter('indicatifRegional');
    		$url = $request->getParameter('url');
        $codeApplication = $request->getParameter('codeApplication');
    		//$parametres = $request->getParameter('parametres');
    		//$texteOK = $request->getParameter('texteOK');

  17. #17
    Membre émérite Avatar de kenny.kev
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 646
    Par défaut
    C'est ce qui me semblais.
    Comme j'ai écrit dans un post précédent la commande doit être :

    php symfony webservice:generate-wsdl "Nom de l'appli" CertiSMS http://10.10.1.219:888/ [--environment=soap] [--enabledebug]
    Etes vous sur d'être sur le l'environnement soap ?

  18. #18
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 88
    Par défaut
    Voici ce que je reçois après exécution de la cette commande.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $ php symfony webservice:generate-wsdl SOAP CertiSMS http://10.10.1.219:888/ [--environment=soap] [--enabledebug]
     
     
      The execution of task "webservice:generate-wsdl" failed.                      
      - Too many arguments ("webservice:generate-wsdl SOAP CertiSMS http://10.10.1.219:888/ [--environment=soap] [--enabledebug]" given).
    Pour répondre à votre question comment vérifier sous quel environnement sur lequel je suis(notamment pour soap) ?

    Merci encore!

  19. #19
    Membre émérite Avatar de kenny.kev
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 646
    Par défaut
    les valeurs entre [] sont des valeurs optionnelles donc il faut retirer les "[" "]".

    Pour l'environnement dans le fichier apps/SOAP/config/factories.yml tu dois avoir un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    soap:   controller:     class: ckWebServiceController
    Au dessus de controller c'est bien soap que tu as ?

    Si c'est pas le cas alors --environment="a ce nom"
    Sinon pas besoin du --environment.

  20. #20
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 88
    Par défaut
    Voici mon fichier factory.yml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    # You can find more information about this file on the symfony website:
    # http://www.symfony-project.org/reference/1_4/en/05-Factories
    all:
      routing:
        class: sfPatternRouting
        param:
          generate_shortest_url:            true
          extra_parameters_as_query_string: true
     
      view_cache_manager:
        class: sfViewCacheManager
        param:
          cache_key_use_vary_headers: true
          cache_key_use_host_name:    true
     
    # your environment for webservice mode
    soap:
      controller:
        class: ckWebServiceController

Discussions similaires

  1. [2.x] Symfony 2 et mise en place web service SOAP
    Par cid007300 dans le forum Symfony
    Réponses: 0
    Dernier message: 23/05/2014, 16h11
  2. Fichier SOAP
    Par alaie dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 21/05/2003, 15h05
  3. [SOAP] : client en PHP, serveur en kylix + .so
    Par RezzA dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 27/01/2003, 16h53
  4. Tomcat + Apache-SOAP
    Par lucho31 dans le forum Services Web
    Réponses: 3
    Dernier message: 17/10/2002, 09h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo