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 :

Serveur web en PHP et client en Java - créer une classe client


Sujet :

Services Web Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 295
    Par défaut Serveur web en PHP et client en Java - créer une classe client
    Bonjour

    Je ne parviens pas à créer une classe en java afin d'utiliser un web service en php très basique :
    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
     
    <?php
    ini_set("soap.wsdl_cache_enabled", "0");
    $serveurSOAP = new SoapServer('HelloYou.wsdl');
    $serveurSOAP->addFunction('getHello');
    if ($_SERVER['REQUEST_METHOD'] == 'POST')
    {
    	$serveurSOAP->handle();
    }
    else
    {
    	echo 'désolé, je ne comprends pas les requêtes GET, veuillez seulement utiliser POST';
    }
     
    function getHello($prenom, $nom)
    {
    	return 'Hello ' . $prenom . ' ' . $nom ;
    }
    ?>
    comme vous voyez c'est basique et trouvé sur le net
    le type est RPC/encoded
    j'ai le fichier wsdl
    Je voudrais créer une classe pour l'utiliser sous eclipse (kelper) mais je n'y parviens pas
    WSimport ne prend pas en compte le rpc/encoded
    Je l'ai testé avec un script php client et cela marche bien

    Avez-vous des solutions ?

    Merci d'avance
    Carmelo

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    tu peux poster le wsdl?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 295
    Par défaut
    Bonjour,

    Merci pour la réponse
    Je voudrais utiliser un web service en php et un wsdl qui y est lié, tous deux trouvés sur internet

    "HelloYou" que j'ai installé dans mon serveur de test dans l'intranet du boulot

    voici les scripts en php :

    1) web service en php "HelloYou.php"

    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
     
    <?php
    ini_set("soap.wsdl_cache_enabled", "0");
     
    $serveurSOAP = new SoapServer('HelloYou.wsdl');
     
    $serveurSOAP->addFunction('getHello');
     
    if ($_SERVER['REQUEST_METHOD'] == 'POST')
     
    {
    	$serveurSOAP->handle();
    }
    else
    {
    	echo 'désolé, je ne comprends pas les requêtes GET, veuillez seulement utiliser POST';
    }
     
    function getHello($prenom, $nom)
    {
    	return 'Hello ' . $prenom . ' ' . $nom ;
    }
    ?>
    2) 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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
     
    <?xml version="1.0"?>
     
    <!-- partie 1 : Definitions -->
    <definitions 	name="HelloYou" 
    		targetNamespace="urn:HelloYou" 
    		xmlns:typens="urn:HelloYou" 
    		xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
    		xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
    		xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
    		xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
    		xmlns="http://schemas.xmlsoap.org/wsdl/">
     
    	<!-- partie 2 : Types-->
    <types>
        	<xsd:schema 	xmlns="http://www.w3.org/2001/XMLSchema" 
    			targetNamespace="urn:HelloYou">
     	</xsd:schema>
     </types> 
     
     
    	<!-- partie 3 : Message -->
    	<message name="getHelloRequest">
    		<part name="prenom" type="xsd:string"/>
    		<part name="nom" type="xsd:string"/>
    	</message>
    	<message name="getHelloResponse">
    		<part name="return" type="xsd:string"/>
    	</message>
     
    	<!-- partie 4 : Port Type -->
    	<portType name="HelloYouPort">
    		<!-- partie 5 : Operation -->
    		<operation name="getHello">
    			<input message="typens:getHelloRequest"/>
    			<output message="typens:getHelloResponse"/>
    		</operation>
    	</portType>
     
    	<!-- partie 6 : Binding -->
    	<binding name="HelloYouBinding" type="typens:HelloYouPort">
    		<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
    		<operation name="getHello">
    			<soap:operation soapAction="HelloYouAction"/>
    			<input name="getHelloRequest">
    				<soap:body 	use="encoded" 	
    						namespace="urn:HelloYou" 	
    						encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
    			</input>
    			<output name="getHelloResponse">
    				<soap:body 	use="encoded" 	
    						namespace="urn:HelloYou" 
    						encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
    			</output>
    		</operation>
    	</binding>
     
    	<!-- partie 7 : Service -->
    	<service name="HelloYouService">
    		<documentation>Retourne une phrase simple </documentation>
    		<!-- partie 8 : Port -->
    		<port name="HelloYouPort" binding="typens:HelloYouBinding">
    			<soap:address location="http://adresse.serveur.intranet/webservices/webservice.php"/> <!-- modifier ce chemin vers server.php -->
    		</port>
    	</service>
    </definitions>
    Remarques :

    - Le type est RPC/encoded
    - j'ai éssayé de créer les classes avec WSimport.exe mais ça ne marche pas car il ne supporte pas le RPC/encoded
    - Peut-être qu'en transformant le wsdl vers du RPC/literal, wsimport pourrait créer les classes ?
    - je suis conscient que le web serveur est écrit en php et mon client en Java, mais cela ne devrait théoriquement pas créer de problème
    - Ca marche sans problème avec un client écrit en php

    Je galère depuis une semaine. Si vous pouviez m'aider, cela me ferait le plus grand bien

    Quoiqu'il en soit, merci d'avance pour votre aide

    Carmelopf

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Je viens de tester ton WSDL sous eclipse avec new -> "Web Service Client", et il m'a généré correctement les stubs. Je vois bien aussi qu'il a pris en code le RPC encoded quand je regarde le stub généré:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
            oper.setStyle(org.apache.axis.constants.Style.RPC);
            oper.setUse(org.apache.axis.constants.Use.ENCODED);
    Quel genre d'erreur as-tu avec ton eclipse?

    edit: je vois que tu parle de eclipse Kepler: on est quand même deux version majeur plus loin pour le moment avec Mars. J'ai testé avec Mars.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 295
    Par défaut
    Merci pour la réponse

    Voilà, j'ai de nouveau testé comme toi par nouveau -> "Web Service Client" ... mais là, il l'ouvre une fenêtre et il bloque avec le message "The service definition selected is invalid"

    Nom : ws_eclipse.png
Affichages : 1112
Taille : 61,2 Ko

    Ca peut-être un problème de serveur ? (Axis ?)

    Merci d'avance

    Bonne soirée
    Images attachées Images attachées  

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    si tu double clique sur ton fichier wsdl dans ton projet, tu arrive à l'ouvrir? Il n'y a pas d'erreur de validation? Tu n'as pas d'erreur dans ta console eclipse?
    Tu peux afficher la fenetre qui apparait quand tu clique sur browse? Normalement c'est là qu'apparaissent les erreurs de validation. Si tu as pensé dans tes préférences eclipse à bien activer la validation des wsdl.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Serveur WEB Apache/php sous windows
    Par timousse dans le forum Apache
    Réponses: 1
    Dernier message: 18/12/2014, 23h14
  2. [Professionnalisation/Alternance] Développeur web/applications PHP/MySQL/AJAX/JQUERY/JAVA - Paris
    Par zilong dans le forum Demandes
    Réponses: 0
    Dernier message: 07/09/2011, 15h38
  3. création d'une base client en java
    Par elpheno dans le forum Général Java
    Réponses: 1
    Dernier message: 07/10/2009, 09h54
  4. consommer un Array d'un Serveur Web SOAP-PHP
    Par pitre dans le forum Services Web
    Réponses: 3
    Dernier message: 20/03/2009, 14h24

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