Usare Apache Axis - PowerPoint PPT Presentation

1 / 16
About This Presentation
Title:

Usare Apache Axis

Description:

Usare Apache Axis Sviluppare e Installare un Web Service Scrivere una implementazione in Java Scrivere un deployment descriptor (WSDD) per il servizio Verr usato da ... – PowerPoint PPT presentation

Number of Views:109
Avg rating:3.0/5.0
Slides: 17
Provided by: sisinflab
Category:
Tags: apache | axis | tomcat | usare

less

Transcript and Presenter's Notes

Title: Usare Apache Axis


1
Usare Apache Axis
2
Sviluppare e Installare un Web Service
  • Scrivere una implementazione in Java
  • Scrivere un deployment descriptor (WSDD) per il
    servizio
  • Verrà usato da Axis per gestire le chiamate SOAP
  • Usato per indicare i metodi Java che si vogliono
    esporre come servizio
  • Usare AdminClient di Axis per installare il file
    WSDD
  • Comunica alla servlet axis di caricare la classe
    e ridirigere ad esse le richieste SOAP
  • Finito
  • Axis genera automaticamente il file WSDL per il
    web service

3
WSDD di prova
ltdeployment name"EseguiComando"
xmlns"http//xml.apache.org/axis/wsdd/"
xmlnsjava"http//xml.apache.org/axis/wsdd/provid
ers/java"gt ltservice name"EseguiComando"
provider"javaRPC"gt ltparameter
name"scope" value"request"/gt
ltparameter name"className" value"SoapTest.EC
wsImp"/gt ltparameter
name"allowedMethods" value"execLocalCo
mmand"/gt lt/servicegt lt/deploymentgt
4
Spiegazione
  • Usare AdminClient da riga di comando per
    installare il servizio sul server
  • java org.apache.axis.client.AdminClient
    deploy.wsdd
  • axis.jar nel classpath.
  • Axis creerà un servizio chiamato
  • http//localhost8080/services/EseguiComando
  • WSDL del servizio
  • http//localhost8080/services/EseguiComando?wsdl
  • Lista di tutti i servizi
  • http//localhost8080/services

5
Scrivere un client SOAP
  • Dopo il deploy del servizio si programma il
    client per invocarlo
  • Si possono utilizzare direttamente le API SOAP di
    Axis

6
Esempio SOAP Axis
  • Service service new Service()
  • Call call (Call) service.createCall()
  • //Settare il target Endpoint al giusto indirizzo
  • call.setTargetEndpointAddress( new
    URL(http//localhost8080/axis/services) )
  • //Invocare l'operazione
  • call.setOperationName(new QName(EchoService",ech
    o"))
  • call.addParameter( in0", XMLType.XSD_STRING,
  • ParameterMode.IN )
  • call.setReturnType(XMLType.XSD_STRING)
  • Object ret call.invoke(new Object in0)
  • //ret è String o RemoteException in caso di
    errore.

7
Un altro metodo
  • Axis puo' generare automaticamente il codice
    necessario a partire dal file WSDL

8
Usare WSDL2Java
  • Ottenere il file WSDL del servizio
  • http//localhost8080/axis/services/Echo?wsdl
  • Usare il comando
  • java org.apache.axis.wsdl.WSDL2Java Echo.wsdl

9
File generati
  • Vengono generati 4 file
  • Echo.java interfaccia
  • EchoService.java interfaccia client-side
  • EchoServiceLocator.java locator che implementa
    l'interfaccia
  • EchoSoapBindingStub.java utilizza Call di SOAP
    come nel primo esempio
  • Scrivere il programma Java utilizzando i file

10
Stub di esempio
  • /Crea un client per Echo /
  • Echo myEcho new
  • EchoServiceLocator().getEcho(new
  • URL(http//localhost8080/axis/services/Echo
    ))
  • / Usare il metodo come in locale /
  • String risposta
  • myEcho.echo(Ciao!)

11
Usare gli Stub
  • Il client visto prima può essere impiegato in
    qualsiasi codice Java per eseguire un servizio
    remoto
  • GUI Swing, programmi da riga di comando, JSP,
    ecc.
  • Attenzione al classpath
  • I jar di Axis sono necessari sia per il client
    che per il web service
  • In Tomcat, bisogna caricare axis tra le librerie
    del server.
  • tomcat-5.5.x/webapps/app/WEB-INF/lib

12
Eclipse WTP
  • http//eclipse.org/webtools
  • Due principali sottoprogetti
  • WST (Web Standard Tools)
  • HTML, XML, CSS, JS, WSDL, SOAP, UDDI, SQL
  • JST (J2EE Standard Tools)
  • Servlet, JSP, EJB, JAX-RPC, JDBC, JAXP
  • Tools per HTML, XML, Web Services, J2EE, Data
  • Server tools per application servers Tomcat,
    JBOSS, WebSphere, WebLogic, ecc.

13
Screencast / Demo
14
Cosa fa il Wizard
  • Installa il motore SOAP di Axis nel progetto
  • Genera lo scheletro Java bean per il servizio e
    le classi per XML data binding nella cartella src
  • Copia test.wsdl in WebContent/wsdl/testSOAP.wsdl
    e imposta l'endpoint per la Web application
    creata
  • Crea il descrittore wsdd di Axis in
    WebContent/WEB-INF/server-config.wsdd
  • Crea file per deploy e undeploy del Web service
    in una sottocartella di WebContent/WEB-INF
  • Avvia Tomcat

15
Axis e oltre
  • IBM SOAP4J -gt Apache SOAP -gt Axis -gt Axis2
  • SUN JAXWS
  • Codehaus Xfire
  • JbossWS
  • webMethods Glue
  • SOAPpy, ZSI, wsdl2py
  • SOAPLite, XMLRPCLite, UDDILite
  • C System.Web.Services
  • phpxmlrpc, WSO2

16
THE END
Grazie per l'attenzione
Write a Comment
User Comments (0)
About PowerShow.com