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

Bibliothèques et frameworks PHP Discussion :

[Web Service] PHP SOAP et Java


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 13
    Points : 5
    Points
    5
    Par défaut [Web Service] PHP SOAP et Java
    Bonjour,

    Un collègue a utilisé des Web Services en Java (Axis il me semble) pour créer des fonctions en Java.
    Ces fonctions étaient utilisées ensuite dans une fenêtre DOS toute simple.

    Mon patron m'a demandé s'il était possible d'utiliser ces fonctions et de les utiliser avec PHP SOAP.
    PHP, je connais, je peux m'en sortir. Par contre SOAP, jamais utilisé et même jamais entendu parlé avant mon patron.
    Et donc je suis un peu bloqué.

    Nous avons imaginé de créer des formulaires dans une page Web, de récupérer les valeurs et ensuite de faire appel aux fonctions qui ont été développé en java.

    Est-il donc possible d'utiliser ces fonctions, sans pour autant modifier le code Java ? Ou alors dois-je procéder d'une autre façon ?

    J'espère que ma demande d'aide est claire et je remercie d'avance les personnes qui pourront m'aider à résoudre mon problème.

    Merci,
    BL

  2. #2
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 102
    Points : 4 448
    Points
    4 448
    $moi= ( !== ) ? : ;

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    Merci pour ta réponse papajoker.

    J'ai déjà lu ce mini tuto concernant SOAP.
    J'ai réussi à faire un SoapClient, puis pour être sûr que tout ça était bon, j'ai utilisé __getFunctions().
    Le résultat de getFunctions est bon, il m'a bien affiché les fonctions du WSDL.

    Par contre, ce que j'aimerai faire, c'est appelé d'autres fonctions, crées en Java, qui se basent sur le WSDL mais qui ne sont pas dedans.

    Suis-je assez clair ?

  4. #4
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 102
    Points : 4 448
    Points
    4 448
    Par défaut
    j'aimerai faire, c'est appelé d'autres fonctions, crées en Java,
    j'ai un gros doute...

    J'ai l'impression que tu désires réécrire le serveur soap ? mais la c'est du java !

    php lui a juste accès au WSDL donc aux functions déclarées dans WSDL.
    $moi= ( !== ) ? : ;

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    D'accord donc si je comprends bien, les fonctions Java qui ont été créées à partir des fonctions du wsdl et qu'on appelait à travers une fenêtre DOS, n'est pas réalisable de la même façon avec PHP Soap ?
    Il faudrait que ces fonctions Java soient réécrites en PHP ou est-il possible d'ajouter ces fonctions dans le wsdl ?

    Désolé si mes questions sont "bêtes" mais je n'ai pas l'habitude de travailler avec les web services

  6. #6
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 102
    Points : 4 448
    Points
    4 448
    Par défaut
    SOAP est une interface entre une application serveur et une autre cliente.

    Dans ta fenêtre Dos, tu utilisais une application java qui utilisait le serveur via SOAP.
    Avec php tu peux créer une application php qui utilisera le serveur via même SOAP.

    Mais bien sur, toute l'application coté client est a ta charge, et n'a en fait rien a voir avec soap, c'est une application normale, qui va juste utiliser un service externe (ici en soap).
    $moi= ( !== ) ? : ;

  7. #7
    Membre chevronné

    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 974
    Points : 1 825
    Points
    1 825
    Par défaut
    Citation Envoyé par Black_Lagoon Voir le message

    Par contre, ce que j'aimerai faire, c'est appelé d'autres fonctions, crées en Java, qui se basent sur le WSDL mais qui ne sont pas dedans.
    pas possible, seul les méthodes déclarées dans le wsdl sont utilisables en l'occurence ici entre php-java

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    Si je résume par rapport à vos réponses, il est impossible d'appeler une classe Java si elle n'est pas présente dans le wsdl même si celle-ci se base sur wsdl.

    Si je voudrais utiliser le fonctionnement des classes Java, il faudrait donc que je réécrive en PHP les classe Java ? Ou peut-être existe-t-il un autre moyen ?

  9. #9
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 102
    Points : 4 448
    Points
    4 448
    Par défaut
    Citation Envoyé par Black_Lagoon Voir le message
    il est impossible d'appeler une classe Java si elle n'est pas présente dans le wsdl même si celle-ci se base sur wsdl.
    C'est le but de soap , c'est une passerelle entre langages-programmes. l'interface est wsdl !

    Citation Envoyé par Black_Lagoon Voir le message
    Si je voudrais utiliser le fonctionnement des classes Java, il faudrait donc que je réécrive en PHP les classe Java ? Ou peut-être existe-t-il un autre moyen ?
    Tes classes java sont dans l'application cliente ? (si j'ai bien compris)
    Toi, tu dois réécrire cette appli cliente en php, pas le choix que ton appli cliente existante soit en java (comme sur le serveur) est un hasard, elle aurait pu être en python ou php.
    $moi= ( !== ) ? : ;

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    Oui, les classes Java sont du côté client. Elles ont été faite en Java car mon collègue est développeur Java^^

    Je vais voir avec mon boss si ça vaut le coup de réécrire les fonctions en PHP mais je pense pas que soit l'objectif.

    Le dernier point qui me vient en tête, peut être un peu hors sujet par rapport à mon début de topic mais est-il possible de modifier le WSDL pour ajouter les fonctions Java ?

  11. #11
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2012
    Messages : 631
    Points : 1 220
    Points
    1 220
    Par défaut
    tu as visiblement un serveur SOAP sans wsdl car aucune classe ni fonction n'a été préalablement déclarée dans le document wsdl. Ce cas reste possible pour peu que le service web et son consommateur utilisent tous deux le même langage de programmation.

    Or dans ton cas, avec 2 langages différents il est impossible d'appeler le service web.

    En revanche rien ne t'empêche avec la fonction shell_exec('commande') d'appeler le client du service web java dans un programme php:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php
    $output = shell_exec('java clientResponse'); //commande d'exécution du client java
    var_dump($output);
    ?>

    Le dernier point qui me vient en tête, peut être un peu hors sujet par rapport à mon début de topic mais est-il possible de modifier le WSDL pour ajouter les fonctions Java ?
    non tout se passe au niveau du code source soap qu'il faut modifier.

    Le mieux serait de réécrire tout le serveur soap avec un fichier wsdl qui exposera les méthodes du service web à n'importe quel langage.

Discussions similaires

  1. [Web Service] Php, SOAP et arguments
    Par CaviarNAS dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 27/09/2010, 11h57
  2. [Web Service] Php, Soap, SSL, Proxy => Could not connect to host
    Par madevilts dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 02/12/2009, 15h52
  3. [Web Service] PHP, soap et type complex
    Par Invité dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 01/07/2009, 16h58
  4. Web Service PHP / Client JAVA
    Par Ronins13 dans le forum Services Web
    Réponses: 0
    Dernier message: 03/06/2009, 16h02
  5. [Web Service] PHP & SOAP - web service
    Par Gregory.M dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 27/12/2008, 13h07

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