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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    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
    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 chevronné
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    354
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2004
    Messages : 354
    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
    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
    Par défaut
    merci pour ta réponse, je vais jeter un oeil à ca !

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 354
    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