Hello,
Je cherche un moyen d'exposer l'interface de mes services "normaux", sous forme de webservices...
Quel serait la/les piste/s à étudier ?
Merci !
Anthony
Hello,
Je cherche un moyen d'exposer l'interface de mes services "normaux", sous forme de webservices...
Quel serait la/les piste/s à étudier ?
Merci !
Anthony
En fait, une interface avec des méthodes dessus permettant effectuer des opérations...
Je voudrais rendre cette interface accessible à distance, via un web service...
Possible ?
Oui, c'est possible, et il y a même plusieurs moyens pour le faire...
avec CXF par exemple :
IService est l'interface de mon service,
ServiceImpl est l'implémentation de mon service.
Et voili et voila...
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 package oca.server; import oca.IService; import oca.ServiceImpl; import org.apache.cxf.frontend.ServerFactoryBean; public class SimpleServer { private static final String SERVICE_URL = "http://localhost:9083/test"; public static void main(String[] args) { ServiceImpl serviceImpl = new ServiceImpl(); ServerFactoryBean svrFactory = new ServerFactoryBean(); svrFactory.setServiceClass(IService.class); svrFactory.setAddress(SERVICE_URL); svrFactory.setServiceBean(serviceImpl); svrFactory.create(); System.out.println(SERVICE_URL+"?wsdl"); } }
wow, merci !
Il y a des resctrictions je suppose sur l'interface en question ? (au niveau des type ?)
Anthony
il faut java 1.5 minimum
je n'ai pas eu de problème de types pour le moment, même avec des types complexes.
La limitation est que dans ce cas, CXF travail avec les mechnisme de java, et le web service produit aura les mêmes nom que les class/méthodes java.
un des problème étant que java ne peut pas obtenir le nom d'un paramètre par reflection, ce qui fait qu'une méthode du genre
public String sayHello(String name)
se retrouvera avec un paramètre arg0 dans la wsdl (puisque name n'est pas visible par reflection...)
Apache CXF permet aussi de travailler avec des annotations (selon la norme java JAX-WS), ce qui amène plus de souplesse et résoud ce genre de petits problèmes.
Java 1.6 peut même faire du JAX-WS "out of the box" sans avec besoin de CXF.
Une alternative est le framework Axis (et Axis2) qui permet de très belles choses également. axis a une notion de fichier .jws qui est à peu près aussi simple que l'exemple ci-dessus. Axis2 support également la norme JAX-WS.
J'ai mis des exemples pour CXF dans ce sujet :
http://www.developpez.net/forums/sho...d.php?t=546943
A+
Merci pour tes explications claires et détaillées !
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager