Bonjour à tous, je développe actuellement une petite application qui expose son métier via des web services REST avec Jersey. Plus précisément, je travaille avec Maven 3 pour la construction et j'utilise le plugin maven-wadl-plugin pour la génération du fichier wadl et wadl-maven-plugin pour la génération des sources client à partir du wadl généré précédemment. Voici ma config:

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
 
 
 ...
 
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <war.basename>intro-jersey-01</war.basename>
    <wadl.basename>mywadl.wadl</wadl.basename>
    <wadl.doc.directory>${basedir}/wadldoc</wadl.doc.directory>
    <wadl.generated.directory>${project.build.directory}/wadl</wadl.generated.directory>
    <rest.client.source.generated.package>com.bulk.jersey.intro.client</rest.client.source.generated.package>
    <rest.client.source.generated.package.directory>com/bulk/jersey/intro/client</rest.client.source.generated.package.directory>
    <rest.client.source.generated.directory>${basedir}/src/test/java</rest.client.source.generated.directory>
  </properties>
  		<plugin>
  			<groupId>com.sun.jersey.contribs</groupId>
  			<artifactId>maven-wadl-plugin</artifactId>
  			<version>1.10</version>
  			<executions>
  				<execution>
  					<id>generate-wadl</id>
  					<phase>compile</phase>
  					<goals>
  						<goal>generate</goal>
  					</goals>
  					<configuration>
  						<wadlFile>${wadl.generated.directory}/${wadl.basename}</wadlFile>
  						<formatWadlFile>true</formatWadlFile>
  						<baseUri>http://localhost:8080/intro-jersey-01/rest</baseUri>
  						<dependencies>
 
  						</dependencies>
  						<packagesResourceConfig>
  							<param>com.bulk.jersey.intro.service.resources</param>
  						</packagesResourceConfig>
  						<wadlGenerators>
  							<wadlGeneratorDescription>
  								<className>com.sun.jersey.server.wadl.generators.WadlGeneratorJAXBGrammarGenerator</className>
  							</wadlGeneratorDescription>
  							<wadlGeneratorDescription>
  								<className>com.sun.jersey.server.wadl.generators.WadlGeneratorApplicationDoc</className>
  								<properties>
  									<property>
  										<name>applicationDocsFile</name>
  										<value>${wadl.doc.directory}/application-doc.xml</value>
  									</property>
  								</properties>
  							</wadlGeneratorDescription>
  						</wadlGenerators>
  					</configuration>
  				</execution>
  			</executions>
  		</plugin>
 
  		<plugin>
  			<groupId>org.jvnet.ws.wadl</groupId>
  			<artifactId>wadl-maven-plugin</artifactId>
  			<version>1.1</version>
  			<executions>
  				<execution>
  					<phase>compile</phase>
  					<goals>
  						<goal>generate</goal>
  					</goals>
  					<configuration>
  						<targetDirectory>${rest.client.source.generated.directory}</targetDirectory>
  						<packageName>${rest.client.source.generated.package}</packageName>
  						<sourceDirectory>${project.build.directory}/wadl</sourceDirectory>
  					</configuration>
  				</execution>
  			</executions>
  		</plugin>
 
<plugin>
  			<groupId>org.apache.maven.plugins</groupId>
  			<artifactId>maven-antrun-plugin</artifactId>
  			<version>1.7</version>
  			<executions>
  				<execution>
  					<phase>initialize</phase>
  					<goals>
  						<goal>run</goal>
  					</goals>
  					<configuration>
  						<tasks>
  							<mkdir dir="${wadl.generated.directory}" />
  							<mkdir dir="${rest.client.source.generated.directory}" />
  						</tasks>
  					</configuration>
  				</execution>
  			</executions>
  		</plugin>
 
....
Les problèmes que je rencontre sont les suivants:

  • Comment configurer plus finement le plugin de génération des sources pour lui préciser de mettre tout ce qu'il génère dans le même package
  • y a-t-il des documents (livres) sur Jersey autre que le guide de référence qui est pas très complet?
  • Quelqu'un a-t-il des docs ou des liens sur des docs permettant de savoir configurer finement la sérialisation JAXB et JSON?
  • L'API générée via le WADL est-elle utilisable dans la partie cliente de GWT 2?


Merci de vos réponses si vous en avez...