2011-10-12 5 views
6

Ho un server SOAP in esecuzione. Devo scrivere un client SOAP per il server. Puoi suggerire plugin in eclissi o darmi l'URL relativo a questo?come creare un client soap?

è possibile fornire un codice SOAP client di esempio?

Il mio client SOAP deve utilizzare oggetti complessi come parmeter/argomenti per la funzione SOAP che è esposta nel server SOAP.

+0

Dovresti essere un po 'più specifico su cosa stai cercando di fare. Quale lingua ? Cosa hai provato fino ad ora ? – fyr

+0

hi grazie per la tua risposta veloce voglio crearlo in java una delle soluzioni potrebbe essere import org.apache.axis.client non so che sia adatto o meno ma qualche genere di questo può aiutarmi a crearlo –

risposta

3

La sua domanda è molto vaga, in modo da utilizzare Apache CXF e seguire questo tutorial:

  1. Questa è la più recente (2011) writeup: Creating a SOAP client with either Apache CXF or GlassFish Metro
  2. How to create a WSDL-first SOAP client in Java with CXF and Maven e
  3. This demo illustrates Apache CXF's support for SOAP headers

Altrimenti, è anche possibile utilizzare Apache AXIS2.

+0

[Domande frequenti su Apache CXF] (http://cxf.apache.org/faq.html#FAQ-CanCXFrunwithJDK1.7%3F) indica "TBD" in merito al supporto Java 7. – Eyal

0

Quello è praticamente un po 'ampia questione. Dal mio punto di vista suggerirei di usare Apache CXF: http://cxf.apache.org/

Ci sono esempi piuttosto buoni e si definisce un WSDL e si genera il server oltre al codice client. Ci sono anche plugin Maven che fanno questo JOB automaticamente per te. È anche possibile incorporare un servizio Web esistente descritto da un WSDL.

Ma tuttavia questo è più una questione di requisiti e gusto.

Si possono trovare alternative, ad es. qui: http://java-source.net/open-source/web-services-tools

1

Aggiorna l'eclissi alla versione più recente (ho visto che funziona con Eclipse Europa 3.3.2 anche se :)). Passare al nuovo wizard di progetto e sotto Web Service selezionare Client servizio Web, fare clic su Avanti e quindi fornire il percorso file wsdl del servizio Web. Eclipse genererà automaticamente stub di servizi Web per te.

3

Assumendo Java:

1.- Esegui:

wsimport -keep -p myClient url_to_wsdl 

Dove MyClient sarà una cartella con i manufatti del cliente generato. url_to_wsdl l'url sul tuo WSDL.

2.- Creare una classe cliente con un metodo con il seguente codice:

YourServiceClass service = new YourServiceClass(); 
    YourEndpointClass port = service.getPort(); 
    YourRequestClass request = new YourRequestClass(); 
    YourMessageClass message = new YourMessageClass(); //In case you have it 
    message.setParam1(param1); //depending on your message 
    message.setParam2(param2); 

    request.setMessage(message); 
    YourResponseClass response = port.ServiceOperation(request); //This call locks execution 

    System.out.println(response.getMessage().getResponse()); 
  • YourServiceClass è l'artefatto generato la estende javax.xml.ws.Service.

  • YourEndpointClass può essere visto in YourServiceClass in un'operazione che chiama super.getPort();

  • YourRequestClass e YourResponseClass dipenderà da come viene gestita la richiesta e la risposta dei messaggi.

  • YourMessageClass sarebbe una classe wrapper per il messaggio (in base a WSDL).

Tutti Le classi * devono essere stati generati da wsimport e importati alla classe cliente. Con la bandiera -keep in wsimport sarà possibile vedere i file .java e determinare quali classi sono necessarie per completare questo codice.