Bonjour,
j'envisage de mettre en place des web services via un serveur en REST.
Cependant, j'ai vu qu'il existait plusieurs méthodes pour ce faire:
JAX-WS et Restlet.
En existe-t-il d'autres ?
Quel choix me conseillez vous ?
Merci pour votre aide.
Bonjour,
j'envisage de mettre en place des web services via un serveur en REST.
Cependant, j'ai vu qu'il existait plusieurs méthodes pour ce faire:
JAX-WS et Restlet.
En existe-t-il d'autres ?
Quel choix me conseillez vous ?
Merci pour votre aide.
Bonjour,
Personnellement, j'utilise l'implémentation Jersey ce qui me donne dans mon pom :
C'est vraiment très simple à mettre en place.
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 <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-client</artifactId> <version>1.10</version> </dependency> <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-server</artifactId> <version>1.10</version> </dependency> <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-json</artifactId> <version>1.10</version> </dependency> <dependency> <groupId>javax.ws.rs</groupId> <artifactId>jsr311-api</artifactId> <version>1.1.1</version> </dependency>
Pratiquement tout est configuré par les annotations ou presque.
Un petite serveur http instancié dans un main et c'est parti.
Le serveur appelé par un main :
et la class MyRessource :
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 import java.io.IOException; import java.net.InetSocketAddress; import com.sun.jersey.api.container.ContainerFactory; import com.sun.net.httpserver.HttpHandler; import com.sun.net.httpserver.HttpServer; public class MyServer { public static HttpServer server = null ; public static int port = 9998 ; public static String context = "/MyContext"; public static boolean launchHttpServer() { HttpHandler handler = ContainerFactory.createContainer(HttpHandler.class, MyResource.class); try { server = HttpServer.create(new InetSocketAddress(port), 0); server.createContext("/", handler); server.setExecutor(null); server.start(); return true ; } catch (IOException e) { e.printStackTrace(); } return false ; }
Voilà simple et efficace.
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 import javax.ws.rs.Consumes; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType; @Path("/MyContext") public class MyResource { @GET @Produces(MediaType.APPLICATION_XHTML_XML) @Consumes(MediaType.TEXT_PLAIN) @Path("/xml") public Object getXML(@QueryParam("type") String type, @QueryParam("aff") String aff) { return .... ; } }
Petite précision (qui a peut-être son utilité), les webservices seront appelés par de clients java, PHP ou autres).
Cela influe-t-il sur le choix ?
Non c'est justement l'intérêt des webservices. Tu utilises la technologie que tu souhaites sans te soucier de celle du client.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Cela influe-t-il sur le choix ?
Partager