A. Roussanaly - Université Nancy2 AXIS Master MIAGE/SID – Université NANCY2.

Slides:



Advertisements
Présentations similaires
ASP.NET v2 + Ajax = Atlas Pierre Lagarde DevDays 2006 Equipé aujourdhui, prêt pour demain !
Advertisements

« Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde Relation Développeurs.
Copyright 2008 © Consortium ESUP-Portail ESUP-Days 9, Paris, 5 février 2010 Packaging et déploiement ESUP Version 3 Julien Marchal.
Chamilah Ingar - Guillaume Monteil - Cyril Tovena
CASTEL Dennis SARZEAUD Floriane TAKAHASHI Atsushi.
SAX Simple API for XML. Généralités API non standard développé par les membres du forum XML-DEV Parseur XML – Orienté événement – Parsing dynamique SAX.
1 8. Notion dadaptateur dobjet. 2 c Raphaël Marvie Principe Rendre plusieurs objets (Servant) disponibles dans un serveur Chaque objet est associé
Cours de NETSILON Réalisé par: Hitcho introduction Netsilon est un logiciel qui permet de concevoir une application web avec PHP.
Introduction aux applications réparties
Julien HERON.
Cours MIAGE « Architectures Orientées Services » Henry Boccon-Gibod 1 Architectures Orientées Services Composants de Service Exemple pratique de développement.
Premiers pas avec Apache Ant Par Guillaume BITAUDEAU Le 16/10/2003.
Cours 6 : XML et les architectures N-tiers – Tier Applicatif
1 Les technologies XML Cours 3 : Les Web Services – Implémentation – JAX-WS Février Version 1.0 -
51 Les technologies XML Cours 7 : Utilisations dXML Janvier Version 1.0 -
AWEB Gestion d’un théâtre 28 juin 2002
Grid France – CC In2p3 – 19/07/2001 Travaux du WP4
INTRODUCTION A JAVA Chapitre 1 : Introduction
Toolkit Web Framework Java pour les IHMs Cédric Dumas mars 2008 contrat Creative Commons Paternité-Pas d'Utilisation Commerciale- Partage.

CURSUS DE FORMATION AUX NOUVELLES TECHNOLOGIES DE DEVELOPPEMENT UV Borland JBuilder 7 Module WSAD.
Servlet JAVA.
Remote Method Invocation
Les entrées /sorties en Java François Bonneville
Enesys RS Data Extension
Projet J2EE Maverick XMLBeans Garcel Jean-Baptiste – Le Loc Martin – Muller Thibaut.
Présentation des frameworks pour Java EE
Connexion base de données
Injection de dépendances
Introduction aux services WEB
J2EE : Framework Wicket et JibX
Mobile Clients for Location-Based Services
LOG 02 Bases de Données Avancées Rappels sur JSP / Servlet
BlueJ_XI 1 Java, les objets : tout de suite ! Gestion des erreurs : les exceptions Notes de cours associées au chapitre 11 tutorial BlueJ
Chapitre 5 Web Services : Le nouveau standard JAX-WS 2.0
Introduction à la programmation (420-PK2-SL) cours 12 Gestion des applications Technologie de linformation (LEA.BW)
Struts 1 & 2 Tlohi ibtissam Tabit boutaina Ilias bouras
Présentation Struts1-JaxB
Faculté I&C, Claude Petitpierre, André Maurer 1 Java.
Débugage avec log4j Azim Roussanaly.
M2 – MIAGE/SID Servlet M2 – MIAGE/SID
TomCat M2 – MIAGE/SID
Documents > J2SE APIs > J2EE APIs
SERVLETS PRESENTATION
ADOBE FLEX 4. © Logica All rights reservedNo. 2 Introduction Flex en action Autour de Flex Logica Le programme.
Déploiement de systèmes SCA distribués Damien Fournier Projet SCOrWare / Équipe ADAM - INRIA 4 avril 2007.
JUnit Présentation complète de JUnit et « guide d’utilisation » en 13 transparents.
Turning Client Vision into Results 1 Architecture GINGER.
Framework Play 2.0 Démonstration du proof of concept
Création d'un projet Web avec Netbeans
Web Services HTTP UDDI SOAP WSDL Besnik SELJIMI, Novembre 2003
RPC / MOM : Comparaison.
JSP (Java Server Pages)
OpenCV: Introduction au Traitement d’Images et Vidéo
Servlets. 2 H. Fauconnier M2-Internet Contenu dynamique Perl/cgi indépendant de la plateforme Extensions du serveur exemple ASP M2-Internet 3 H. Fauconnier.
1 CSI 2532 Lab6 Application Web et DB Février 27, 2012.
Fabienne Boyer Laboratoire LIG (INRIA-UJF-INPG) Projet SARDES, INRIA Rhône-Alpes APACHE/VELOCITY.
Michel Coletta - Journées PATTERNS Avril Grenoble1 STRUTS Introduction Technologies Java Architecture Développement Enseigner quoi ?
« Les Mercredis du développement » Les WebParts Présenté par Pierre Lagarde Relation Développeurs Microsoft France Level 300.
Initiation au web dynamique - TP
M2 – MIAGE/SID Servlet M2 – MIAGE/SID
GWT - QuickStart V 1.0 / May. Mise en place de l’environnement Java : Version 1.4 minimum IDE Eclipse 3.3 Europa : lien (Eclipse J2EE recommandée)‏lien.
BOUSQUET Alexis - GUILLEMIN Vincent - PETIT Cédric
Extensible Container Model / OpenCCM Integration Demo1 exemple Questions pour l’intégration.
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
Metro Web Services Ben Yaflah Marouen Dhrif Mohamed Hbib Hajlaoui Nader.
Cours MIAGE « Architectures Orientées Services »Henry Boccon-GibodCours MIAGE « Architectures Orientées Services »Henry Boccon-Gibod 1 Architectures Orientées.
Service de vidéo à la demande Projet Tutoré : Groupe C3 Université Paris 5.
DWR Jean-Jacques LE COZ. Introduction Projet DWR Framework AJAX Projet Open Source commencé en 2004 Licence GPL (Apache Software License v2) Sponsorisé.
WS Soap pour l’identification LDAP
Transcription de la présentation:

A. Roussanaly - Université Nancy2 AXIS Master MIAGE/SID – Université NANCY2

A. Roussanaly - Université Nancy2 Généralités Open source de Apache Software Foundation Moteur SOAP Compatible JAX-RPC Distribué avec des outils de développement et de monitoring Accompagné de documentation et d'exemples

A. Roussanaly - Université Nancy2 Architecture JAX-RPC HTTP SOAP JAX-RPC API ClientAPI Serveur WSDL CLIENTSERVICE

A. Roussanaly - Université Nancy2 Architecture Axis JVM Moteur de Servlet AxisServlet La Servlet AxisServlet reçoit et renvoie les messages SOAP et transmet aux objets Java correspondant Les Objets Java effectuent les services. Ils sont des objets Java classiques. Objets Java et Servlet sont dans la même JVM (pas de répartition). SOAP/HTTP Le client envoie des messages SOAP/HTTP D'après Xavier Blanc

A. Roussanaly - Université Nancy2 Axis2 JVM Moteur de Servlet AxisServlet Archives au format.aar SOAP/HTTP

A. Roussanaly - Université Nancy2 Activité : développer un serveur Développer un serveur qui fournit le change de différentes monnaies par rapport au DM Ecrire ensuite une application de conversion de monnaies (client) Exemple dopérations: getDollar() getFrancSuisse() getLivre() getYen()

A. Roussanaly - Université Nancy2 ARCHIVES

A. Roussanaly - Université Nancy2 Créer un service web avec Axis2… …et Eclipse for J2EE developper

A. Roussanaly - Université Nancy2 Configuration

A. Roussanaly - Université Nancy2 Créer un projet

A. Roussanaly - Université Nancy2 Ajouter automatiquement les jar de Axis2 dans lib

A. Roussanaly - Université Nancy2

Créer une classe

A. Roussanaly - Université Nancy2 Générer le WS

A. Roussanaly - Université Nancy2

Tester le service

A. Roussanaly - Université Nancy2 Axis Ecriture dun serveur

A. Roussanaly - Université Nancy2 Projet Eclipse/Tomcat build.xml project.properties deploy.wsdd undeploy.wsdd index.jsp… axis-change src classeslib fr.miage.sid.axis.server axis.jar axis-ant.jar wsdl4j.jar mail.jar activation.jar….java.class WEB-INF web.xml server-config.wsdd perms.lst users.lst…

A. Roussanaly - Université Nancy2 Properties name=poub version=1.0 year=2006 debug=on deploy.file=deploy.wsdd undeploy.file=undeploy.wsdd service.host=localhost service.port=80 service.package=fr.miage.sid.axis.server

A. Roussanaly - Université Nancy2 Service « rapide » Dans un premier temps, il nous faut un service ; Axis permet den créer de manière très rapide. Pour notre application, nous allons créer un service qui nous permet dobtenir le cours de différentes monnaies en euro. Exemple dopérations: getDollar() getFrancSuisse() getLivre() getYen()

A. Roussanaly - Université Nancy2 Change : service Créer un programme source java exemple : une classe Change qui fournit le taux de change de lUSD, CHF, JPY, GBP Modifier l'extension.java du fichier source en.jws Déployer le fichier.jws copie dans %tomcat%\webapps\axis

A. Roussanaly - Université Nancy2 Listing : Change.jws public class Change { private double EU_USD = 1.251; private double EU_CHF = 1.592; private double EU_JPY = ; private double EU_GBP = 0.670; public double getDollar(){return EU_USD;} public double getFrancSuisse(){return EU_CHF;} public double getYen(){return EU_JPY;} public double getLivre(){return EU_GBP;} }

A. Roussanaly - Université Nancy2 Test du service Change Examiner sa description WSDL Enregistrer le fichier WSDL dans un projet Eclipse Exemple : change.wsdl Tester ce service avec les outils Eclipse/WTP Menu contextuel Web Services sur change.wsdl et Test with Web services Explorer…

A. Roussanaly - Université Nancy2 Change : client On peut maintenant écrire une application cliente du service change. Par exemple, un convertisseur de monnaie :

A. Roussanaly - Université Nancy2 Ecriture « normale » dun service Usage des fichiers JWS limité : Obligation de travailler avec le code source Pas de possibilité de mappings Pas de possibilité de contrôle avec un handler On est donc amené à déployer des classes (ou éventuellement des jars)

A. Roussanaly - Université Nancy2 Ecriture « normale » dun service Le point de départ peut être : 1.un fichier WSDL : On utilise alors loutil WSDL2JAVA pour engendrer le « squelette » dun serveur (skeleton) 2.une classe JAVA : Le fichier WSDL est dynamiquement engendré par le servlet Axis

A. Roussanaly - Université Nancy2 Etapes 1.Développer le service et lintégrer dans un projet Tomcat contenant le servlet Axis (autrement dit déployer le servlet Axis sous Tomcat) 2.A laide dun fichier de descripteur de déploiement (WSDD) propre à Axis, déployer le service Axis Il sagit de mettre à jour le fichier de configuration server-config.wsdd qui se trouve dans le dossier WEB-INF dAxis On utilise loutil AdminClient dAxis

A. Roussanaly - Université Nancy2 Ant

A. Roussanaly - Université Nancy2 WSDD <deployment xmlns=" xmlns:java="

A. Roussanaly - Université Nancy2 Explications Loutil AdminClient sappuie (1) sur les informations contenues dans le fichier WSDD et (2) sur les arguments passés en paramètres (host, port, axis-root) axis.jar et axis-ant.jar doivent être dans le classpath. Axis crée un servive appelé : / /services/ Le WSDL du service is accessible à : / /services/ ?wsdl Une liste des services est visible à : / /services

A. Roussanaly - Université Nancy2 WSDD avancée Scope...> />... : "Request" "Session" "Application"

A. Roussanaly - Université Nancy2 Annexes (archives)

A. Roussanaly - Université Nancy2 Exemple client n°1 (DII) public String endPoint = " public String operationName = "addInt"; public int invokeService(int a, int b) throws Exception{ Service service = new Service(); Call call = (Call) service.createCall(); call.setOperationName(new QName(endPoint, operationName)); call.setTargetEndpointAddress( new URL(endPoint) ); Integer ret = (Integer) call.invoke( new Object[] { new Integer(a), new Integer(b)} ); return ret.intValue(); }

A. Roussanaly - Université Nancy2 Exemple client n°2 (PROXY) public String wsdlUrl = " public String nameSpaceUri = " public String serviceName = "AddFunctionService"; public String portName = "AddFunction"; public int invokeService(int a, int b) throws Exception{ ServiceFactory serviceFactory = ServiceFactory.newInstance(); Service afService = serviceFactory.createService( new URL(wsdlUrl), new QName(nameSpaceUri, serviceName)); AddFunctionServiceIntf afsIntf =(AddFunctionServiceIntf)afService.getPort(new QName(nameSpaceUri, portName), AddFunctionServiceIntf.class); return afsIntf.addInt(a, b); }

A. Roussanaly - Université Nancy2 Exemple client n°2 (PROXY) public interface AddFunctionServiceIntf extends java.rmi.Remote { public int addInt(int a, int b) throws java.rmi.RemoteException; }

A. Roussanaly - Université Nancy2 Exemple client n°3 (STUB) public int invokeService(int a, int b) throws Exception{ AddFunctionService afs = new AddFunctionServiceLocator(); AddFunction af = afs.getAddFunction(); return af.addInt(a, b); } Générer préalablement le stub à l'aide de l'outil WSDL2Java

A. Roussanaly - Université Nancy2 Déploiement de service %java org.apache.axis.client.AdminClient MyService.wsdd

A. Roussanaly - Université Nancy2 Axis Ecriture dun client

A. Roussanaly - Université Nancy2 Ecriture d'un client On a le choix entre 3 méthodes : Proxy Cas dutilisation : type des paramètres et résultat connus (voir exemple annexe de présentation) Interface d'invocation dynamique (DII) : Cas dutilisation : on ne connaît que lurl du service => invocation dynamique des méthodes (voir exemple annexe de présentation) Génération d'un Stub à partir d'une description WSDL Cas dutilisation : connaissance préalable du WSDL On se place dans ce cas dans la suite…

A. Roussanaly - Université Nancy2 Synopsis de lapplication Change.wsdl WSDL2JAVA ChangeSoapBindindStub.java UI.java Convertisseur.java JAVAC ChangeServiceLocator ChangeService.java Change.java

A. Roussanaly - Université Nancy2 Projet Eclipse build.xml project.properties ChangeAxisClient src binlib fr.miage.sid.axis.clientimg stub axis.jar axis-ant.jar wsdl4j.jar mail.jar activation.jar….java.java (wsdl2java).class.jpg

A. Roussanaly - Université Nancy2 Ant …

A. Roussanaly - Université Nancy2 Ant <taskdef name="wsdl2java" classname="org.apache.axis.tools.ant.wsdl.Wsdl2javaAntTask">

A. Roussanaly - Université Nancy2 Ant <!-- ==================================================================== Créer un stub avec wsdl2java ==================================================================== --> <target name="wsdl2java" description="Génération d'un stub (client)">