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 :

instanciation des web services à la volée


Sujet :

Services Web Java

  1. #21
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 31
    Points : 13
    Points
    13
    Par défaut
    Salut oca,
    J'espere que tu vas bien.
    J'ai regardé la solution soapui qui permet de faire la tâche que je veux effectuer, les fichiers sources sont aussi fournis. Donc j'ai reflechi à integrer cet api dans mon application pour effectuer l'appel dynamique de web service.
    Bref, j'ai trouvé ce lien http://www.soapui.org/architecture/integration.html mais je n'ai pas su comment resoudre les problemes de dependences!!!
    As tu une idée comment proceder pour le faire marcher?
    Merci d'avance.
    A+

  2. #22
    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,

    On a discuté il y a qq jours de soapui dans ce post :
    http://www.developpez.net/forums/d76...a/#post4440283

    On parlait entre autre de comment invoquer un web service depuis un message soap "construit à la main" (ou copier coller depuis la proposition de soapui )

    Je voila le code que je proposais :
    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
     
    import java.net.*;
    import java.io.*;
     
    public class SendSoap {
    	public static void main(String[] args) throws Exception {
    		String soapMessage = "<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:oca=\"http://oca\">"
    				+ " <soap:Header/>"
    				+ "  <soap:Body>"
    				+ " <oca:sayHello>"
    				+ "  <name>Olivier</name>"
    				+ " </oca:sayHello>"
    				+ "</soap:Body>" + "</soap:Envelope>";
     
    		String res = sendSOAP("http://localhost:6060/axis2/services/Service1", soapMessage);
    		System.out.println(res);
    	}
     
    	public static String sendSOAP(String SOAPUrl, String soapMessage)
    			throws Exception {
    		URL url = new URL(SOAPUrl);
    		URLConnection connection = url.openConnection();
    		HttpURLConnection httpConn = (HttpURLConnection) connection;
     
     
    		byte[] byteArray = soapMessage.getBytes();
     
    		httpConn.setRequestProperty("Content-Length", String
    				.valueOf(byteArray.length));
    		httpConn.setRequestProperty("Content-Type", "text/xml; charset=utf-8");
    		httpConn.setRequestProperty("SOAPAction", "");
    		httpConn.setRequestMethod("POST");
     
    		httpConn.setDoOutput(true);
    		httpConn.setDoInput(true);
     
    		OutputStream out = httpConn.getOutputStream();
    		out.write(byteArray);
    		out.close();
    		BufferedReader in = null;
    		StringBuffer resultMessage= new StringBuffer();
    		try {
    			InputStreamReader isr = new InputStreamReader(httpConn
    					.getInputStream());
    			in = new BufferedReader(isr);
    			String inputLine;
    			while ((inputLine = in.readLine()) != null) {
    				resultMessage.append(inputLine);
    			}
     
    		} finally {
    			if (in != null) {
    				in.close();
    			}
    		}
    		return resultMessage.toString();
    	}
    }
    L'avantage de cette technique est que pour des appels simples sans ws-security, policy et autres..., cela reste facile, et tu n'as pas besoin de framework ou autre dépendances... en plus cela marche avec java 1.4

    L'inconvénient, c'est de contruire le soap et surtout, de parser la réponse (mais cela reste faisable avec xpath par exemple) en plus cela ne gère pas WS-Adressing par exemple... bref ce n'est pas pour rien qu'il existe des framework

    A+

  3. #23
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 31
    Points : 13
    Points
    13
    Par défaut
    Merci oca pour tes reponses et ton aide precieuse,
    J'ai resolu mon prbleme en utilisant ce tutorial : WEB SERVICES DYNAMIC CLIENT GUIDE . Il suffilt de taper ça sur google pour obtenir le tuto.
    Merci..
    A+

  4. #24
    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
    Cool ! je ne connaissais pas cette librairie, elle a l'air pratique !
    A+

  5. #25
    qxn
    qxn est déconnecté
    Futur Membre du Club
    Inscrit en
    Mai 2003
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par newdevso Voir le message
    Bonsoir,
    Je veux instancier des web services selon mon input:
    C'est à dire, je dispose de plusieurs web services et selon les données que j'ai en entrée, je vais instancier un sous ensemble des web services pour les executer.
    Est il possible de le faire en java?
    Et si c'est oui, je voudrai savoir le comment?
    Merci d'avance...
    J'ai vu un peu ce que tu as trouvé a la fin mais je te proposes autre chose plus en ligne avec l'esprit SOA.

    Theoriquement quand tu combines des services tu creer le processus metier (example a la con: vacance = resa billet + hotel + car rental + sortie ..). Avec SOA ca s'appel l'orchestrateur/manager, celui-ci lit une specification du workflow decrit en BPEL.

    Donc tu devrais voir une template de processe BPEL (un processus abstrait) ensuite en fonction de tes parametres generer un nouveau processus metier, le deployer (exemple: www.activeVOS.com) et executer l'instance du workflow. Sans ca tes services ne sont plus tres flexible et tu perds l'esprit SOA.

    qxn

Discussions similaires

  1. Réponses: 3
    Dernier message: 08/03/2007, 10h16
  2. [C#] Intéroéraibilité des Web Services C# ---> Java
    Par dcollart dans le forum Services Web
    Réponses: 3
    Dernier message: 07/12/2006, 11h29
  3. [AXIS] deploiment des web services
    Par Mizou dans le forum Tomcat et TomEE
    Réponses: 26
    Dernier message: 03/07/2006, 17h16
  4. [AXIS] deploiment des web services
    Par Mizou dans le forum Services Web
    Réponses: 2
    Dernier message: 27/06/2006, 11h54

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