Bonjour,

J'essaye de développer un WebService qui a pour client une classe Java et moteur PHP. Le code PHP est sur un serveur Wamp (donc en local).

Le souci est qu'avec un client codé en PHP ça fonctionne mais pas en Java.

Voici le code en question
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
package ihm;
 
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransport;
 
public class UtilisationKSOAP2 
{
    public StringBuffer tamponEcriture;
 
    public UtilisationKSOAP2() 
    {
        super();
                System.out.print("------------------>1");
    }
 
    public void startApp()  
    {
        // StringBuffer pour debug
        this.tamponEcriture    = new StringBuffer("Journal des évènements\n");
                System.out.print("------------------>2");
        this.executerRequeteSOAP();
    }
 
    public void executerRequeteSOAP ()
    {
        // partie de la création des objets HTTPTransport et SOAPObject
            System.out.print("------------------>3");
        Object resultatRequeteSOAP = null;
        SoapObject objetSOAPHello;
        HttpTransport connexionServeur;
        SoapSerializationEnvelope envelope ;
 
        // nom du service
        String nomService        = "urn:HelloYou";
 
        // url du service
        String urlService= "http://localhost/dossier%20de%20teste%20gite/moteur.php";
 
        // méthode du service
        String methodeChoisie         = "getHello";
 
        try
        {
            this.tamponEcriture.append("création HTTPTransport\n");    
 
            // etape 1 création module de connexion HTTP
            connexionServeur = new HttpTransport    ( urlService ); 
 
            //TODO a modifier lors de la mise en production
            connexionServeur.debug = true;
 
            //     etape 1 ok 
            this.tamponEcriture.append("creation HTTPTransport effective\n");    
 
            // création objet SOAP 
            objetSOAPHello = new SoapObject    (nomService, methodeChoisie );
 
            // ajout des propriétés pour cette méthode
            objetSOAPHello.addProperty ("prenom","Paul");
            objetSOAPHello.addProperty ("nom", "Hochon");
 
 
            // création d'un objet qui contiendra nos propriétés
            envelope = new SoapSerializationEnvelope(SoapSerializationEnvelope.VER11);
            envelope.bodyOut = objetSOAPHello;//this.envelope.dotNet = false;
 
            // argument utile dans le cas d'un service SOAP .net
            //envelope.dotNet = true;
 
            //     création de l'objet SOAP ok 
            this.tamponEcriture.append(" SOAPobjet effective\n");    
            System.out.print("------------------>4");
        }
        catch (Exception aE)
        {
            this.tamponEcriture.append("Exception levée dans SOAPObject\n");
 
            aE.printStackTrace ();
                        System.out.print("------------------>5");
            return;
        }
 
        // connexion au serveur
        try 
        {
            System.out.print("------------------>6");
                    System.out.print(tamponEcriture);
                        // invoquation de la méthode sur le serveur
            connexionServeur.call(null, envelope);
            System.out.print("------------------>7");
            // recuperation de la réponse du serveur
            resultatRequeteSOAP =  envelope.getResponse();
 
            // affichage de la réponse
            this.tamponEcriture.append("resultat de la requête\n");    
 
            this.tamponEcriture.append(resultatRequeteSOAP);
 
                        System.out.print(tamponEcriture);
 
 
        } 
        catch (Exception aE) 
        {
 
                        System.out.print("------------------>8");
            this.tamponEcriture .append("exception déclenchée sur méthode call\n");    
        } 
    }
 
 
         public static void main(String[] args) {
        // TODO code application logic here
 
           UtilisationKSOAP2 cl = new UtilisationKSOAP2(); 
           cl.startApp();
 
    }
}
voila le code 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
<?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://localhost/dossier%20de%20teste%20gite/moteur.php"/>
        </port>
    </service>
</definitions>
le moteur en 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
24
25
26
<?php
 
// première étape : désactiver le cache lors de la phase de test
ini_set("soap.wsdl_cache_enabled", "0");
 
// on indique au serveur à quel fichier de description il est lié
$serveurSOAP = new SoapServer('HelloYou.wsdl');
 
// ajouter la fonction getHello au serveur
$serveurSOAP->addFunction('getHello');
 
// lancer le serveur
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;
}
?>
alors j ai remarque une chose bizzare a la line 113 du fichier java
Code : Sélectionner tout - Visualiser dans une fenêtre à part
connexionServeur.call(null, envelope);
En effet, à ce moment là, le code s’arrête et une exception est levée.

Je suis sous NetBeans et voici ce qui sort en console :
run:
------------------>1------------------>2------------------>3------------------>4------------------>6Journal des évènements
création HTTPTransport
creation HTTPTransport effective
SOAPobjet effective
Exception in thread "main" java.lang.NoClassDefFoundError: javax/microedition/io/Connector
at org.ksoap2.transport.ServiceConnectionMidp.<init>(Unknown Source)
at org.ksoap2.transport.HttpTransport.getServiceConnection(Unknown Source)
at org.ksoap2.transport.HttpTransport.call(Unknown Source)
at ihm.UtilisationKSOAP2.executerRequeteSOAP(UtilisationKSOAP2.java:112)
at ihm.UtilisationKSOAP2.startApp(UtilisationKSOAP2.java:43)
at ihm.UtilisationKSOAP2.main(UtilisationKSOAP2.java:139)
Caused by: java.lang.ClassNotFoundException: javax.microedition.io.Connector
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
... 6 more
Java Result: 1
GÉNÉRATION TERMINÉE (durée totale* 0 secondes)
J'ai suivi ce tutoriel http://jp-clair.developpez.com/artic...E/webServices/ qui utilise un client J2ME mais pour mon projet j'ai besoin d'utiliser une application Java normale.

Quelqu'un saurait-il m'indiquer comment résoudre ce problème ?

Merci d'avance pour votre aide.