Bonjour,

Mon problème est le suivant (je pense que c'est tout con mais je bloque vraiment):

Dans le cadre d'un projet que je dois faire, j'ai créé une application n-tiers avec l'architecture suivante,

Une servlet (couche présentation) appel un webservice en java (couche métier) qui lui même appel un autre webservice en PHP (couche données) qui enfin irra interrogé une base de données xml.

Mon problème se situe au niveau du webservice java, j'arrive à l'interroger avec ma servlet du moment que je n'intègre pas les service qui irront interrogé le webservice PHP, mais dès que j'intègre ces fonctions, mon wsdl n'est plus fonctionnel.

En gros ma question est : comment fait-on pour avoir un webservice qui se comporte de manière serveur autant que client ?

J'ai essayé de mettre les stub clients généré par le WS PHP dans tous les dossiers inimaginables sans succès.

Ci-dessous le code de mon WS java, merci d'avance pour votre aide.


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
 
import org.apache.axis.AxisFault;
import org.apache.axis.MessageContext;
import org.apache.axis.transport.http.HTTPConstants;
import java.util.Enumeration;
import java.util.ArrayList;
import java.util.Iterator;
import java.io.*; 
import java.rmi.RemoteException;
import javax.xml.rpc.ServiceException;
import maTargetNameSpace.*;
 
public class WEBserviceP
{
  public String welcome(String sexe, String prenom, String nom) 
  {
    String message = "Bonjour " + sexe + " " + prenom + " " + nom + "<br />";
    return message;
  }
 
  public String map(String dst)
  {
    String js = "initialize('" + dst + "')";
    return js;
  }
 
  public static double convert(double localamount , String dpt, String dst)
  { 
    MonSERVICELocator service = new MonSERVICELocator();
    String rate=null;
    try
    {
      MonSERVICEPortType port = service.getmonSERVICEPort();
      dptrate = port.getRate(dpt);
      dstrate = port.getRate(dst);
    }
    catch (RemoteException e)
    {
      //e.printStackTrace();
    }
    catch (ServiceException el)
    {
      //el.printStackTrace();
    }
 
    double foreignamount = localamount * (dstrate/dptrate);
    return foreignamount;
  }
}