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

Services Web Java Discussion :

Client Java (applet) - Serveur PHP ?


Sujet :

Services Web Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 8
    Points : 6
    Points
    6
    Par défaut Client Java (applet) - Serveur PHP ?
    Bonjour à tous,

    je suis entré récemment dans la jungle des webservices, j'essaye d'avancer mais ce n'est pas toujours évident...

    La question que je me pose en ce moment est : est-ce que je peux avoir d'un côté une applet Java faisant office de client, et de l'autre un service php ?

    Mon but est d'envoyer une image récupérée chez le client par l'applet, de l'envoyer sous forme de byte[], et de l'enregistrer sur le serveur.

    Je dispose déjà de l'image en base 64 prête à être envoyée par l'applet, du code serveur php, du fichier wsdl, mais je ne sais pas comment faire appel au service dans mon applet.

    fichier wsdl :
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    <?xml version="1.0"?>
     
    <definitions name="transfertImage"
        targetNamespace="http://127.0.0.1/acquisition/transfertImage.wsdl"
              xmlns:tns="http://127.0.0.1/acquisition/transfertImage.wsdl"
              xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
              xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
              xmlns="http://schemas.xmlsoap.org/wsdl/">
     
    <message name="m1">
        <part name="image" type="xsd:base64Binary"/>
    </message>
     
    <message name="m2">
        <part name="success" type="xsd:boolean"/>
    </message>
     
    <portType name="pt1">
        <operation name="receiveFile">
            <input message="m1"/>
            <output message="m2"/>
        </operation>
    </portType>
     
    <binding name="b1" type="typens:pt1">
        <soap:binding style="rpc" 
            transport="http://schemas.xmlsoap.org/soap/http" />
          <operation name="receiveFile">
              <soap:operation
                 soapAction="http://127.0.0.1/acquisition/transfertImage.wsdl"/>
            <input>
                <mime:multipartRelated>
                    <mime:part name="imageData">
                    <mime:content part="image" type="image/jpeg"/>
                    </mime:part>
                </mime:multipartRelated>
            </input>
            <output>
                <soap:body use="literal"/>
            </output>
        </operation>
    </binding>
     
    <service name="serviceTransfertImage">
        <port name="pt1" binding="typens:b1">
          <soap:address location="http://127.0.0.1/acquisition/transfertImage_server.php"/>
        </port>
      </service>
     
    </definitions>
    serveur :
    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
    29
     
    <?php
     
    class serviceTransfertImage {
     
        function receiveFile($data){
            $written=false;
            $data=base64_decode($data);
            $path='img_out.jpg';
            $fp=fopen($path,'w+');
            if($fp){ fwrite($fp,$data); fclose($fp); $written=true;}
     
            return $written;
        }
    }
     
    ini_set('soap.wsdl_cache_enabled', 0);
     
    try {
     
        $server = new SoapServer('transfertImage.wsdl',  array('trace' => 1, 'soap_version' => SOAP_1_1, 'encoding' => 'ISO-8859-1'));
        $server -> setclass('serviceTransfertImage');
    } catch (Exception $e) {
        echo $e;
    }
     
        $server -> handle();
     
    ?>
    en gros, voilà un code php qui marche, je voudrais quelque chose dans le genre, mais dans mon applet :
    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
     
    <?php
     
    $path =  utf8_decode(urldecode($_GET['path']));
     
    ini_set('soap.wsdl_cache_enabled', 0);
     
    try {
        $client = new SoapClient('transfertImage.wsdl', array('trace' => 1, 'soap_version' => SOAP_1_1, 'encoding' => 'ISO-8859-1'));    
        $data=file_get_contents($path);
     
        $client->receiveFile(base64_encode($data));
    } catch (SoapFault $fault) {
        echo $fault;
    }
     
    ?>

    Je ne sais pas trop quoi chercher...Axis ? Pourriez-vous m'indiquer des pistes, cela serait grandement apprécié

    Merci d'avance !

  2. #2
    oca
    oca est déconnecté
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    354
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2004
    Messages : 354
    Points : 421
    Points
    421
    Par défaut
    Hello,

    J'utilise Axis pour faire mes appelles "web services" depuis java.

    je travail avec Eclipse, qui permet la création automatique des
    classes axis d'accès aux web services à partir d'une WSDL.
    (clique droit sur la wsdl, puis menu "Web Services" puis "Generate Client"

    une fois les classes générée, j'écris mon appelle de la manière suivante :

    petit exemple avec un service "sayHello"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public class Test {
    	public static void main(String[] args) throws Exception{
    		HelloImplServiceLocator locator = new HelloImplServiceLocator();
    		HelloImplPT pt = locator.getHelloImpl();
    		System.out.println(pt.sayHello("Oli"));
    	}
    }
    les classes HelloImplServiceLocator, HelloImplPT (et bien d'autres) sont générées automatiquement depuis la wsdl.

    A+

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    merci pour ta réponse, je vais jeter un oeil à ca !

  4. #4
    oca
    oca est déconnecté
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    354
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2004
    Messages : 354
    Points : 421
    Points
    421
    Par défaut
    Regarde aussi ce sujet, j'y ai mis une petit video flash qui montre
    comment faire un client web service depuis eclipse
    http://www.developpez.net/forums/sho...d.php?t=521284

    la vidéo est la :
    http://picshell.ovh.org/demo/ws.htm
    A+

Discussions similaires

  1. Client SOAP Delphi, serveur PHP, problème de types
    Par le_viking dans le forum Web & réseau
    Réponses: 3
    Dernier message: 06/01/2012, 10h36
  2. Java vers serveur Php/Mysql, quelle solution ?
    Par Mordoum dans le forum Général Java
    Réponses: 7
    Dernier message: 22/01/2008, 11h04
  3. Java en client d'un serveur PHP
    Par trollchichon dans le forum Services Web
    Réponses: 14
    Dernier message: 26/11/2007, 14h25
  4. client java pour serveur c
    Par innosang dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 30/05/2007, 17h15
  5. Intéropérabilité entre un client java et serveur dot net
    Par miss_2000 dans le forum Services Web
    Réponses: 1
    Dernier message: 01/12/2006, 10h54

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