Hello Pavel,
I found the bug.
In fact I wrote my own IntrospectionModeler(based on yours of course) for
some rules (others annotations on resources) because I didn't find any other
way. (Couldn't do it between IntrospectionModeler.createResource and
wadlBuilder.generate(Set<AbstractResource> resources). Filters as in
<
https://jersey.dev.java.net/nonav/apidocs/latest/jersey/com/sun/jersey/spi/
container/ResourceFilterFactory.html>
https://jersey.dev.java.net/nonav/apidocs/latest/jersey/com/sun/jersey/spi/c
ontainer/ResourceFilterFactory.html
are not really appropriate to do what I want.
The purpose was to display an application.wadl depending on the user right
to access a resource.
And in the last version 1.3 a few lines were added to the original
IntrospectionModeler from 1.1.5.1 or 1.1.3-ea version.
Those lines are about @Consumes.
Sorry for the inconvenience caused.
Patrick.
From: Pavel.Bucek_at_Sun.COM [mailto:Pavel.Bucek_at_Sun.COM]
Sent: mercredi 21 juillet 2010 00:17
To: users_at_jersey.dev.java.net
Subject: Re: [Jersey] WadlGeneratorResourceDoc NullPointerException
Hello Patrick,
can you provide minimal reproducible testcase?
I added method
@POST
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
@Produces( { MediaType.TEXT_PLAIN })
public String test(@FormParam("contractType") Integer stuff1) {
return "test";
}
to ItemResource in extended-wadl-webapp sample and I got:
...
<ns2:method name="POST" id="test">
<ns2:request>
<ns2:representation
mediaType="application/x-www-form-urlencoded">
<ns2:param xmlns:xs=
<
http://www.w3.org/2001/XMLSchema> "
http://www.w3.org/2001/XMLSchema"
type="xs:int" style="query" name="contractType"/>
</ns2:representation>
</ns2:request>
<ns2:response>
<ns2:representation mediaType="text/plain"/>
</ns2:response>
</ns2:method>
...
No exception was thrown during wadl generation.
Regards,
Pavel
On 7/19/10 1:51 PM, Patrick Sauts wrote:
Hello,
I've just updated jersey version to 1.3 and I'm facing a curious behavior
generating extended wadl.
Using the wadl-resourcedoc-doclet maven task to write the wadl to a file I
just had to change xercesImpl to version 2.8.1 and it works fine.
java.lang.NullPointerException
at
com.sun.jersey.server.wadl.generators.resourcedoc.WadlGeneratorResourceDocSu
pport.createParam(WadlGeneratorResourceDocSupport.java:325)
at
com.sun.jersey.server.wadl.WadlBuilder.generateParam(WadlBuilder.java:260)
at
com.sun.jersey.server.wadl.WadlBuilder.generateRequest(WadlBuilder.java:191)
at
com.sun.jersey.server.wadl.WadlBuilder.generateMethod(WadlBuilder.java:155)
at
com.sun.jersey.server.wadl.WadlBuilder.generateResource(WadlBuilder.java:282
)
at
com.sun.jersey.server.wadl.WadlBuilder.generateResource(WadlBuilder.java:265
)
at
com.sun.jersey.server.wadl.WadlBuilder.generate(WadlBuilder.java:101)
In fact "_delegate.createParam( r, m, p );" line 320 of WadlGenerator class
return null.
The resource the error appends on, has those annotations:
@POST
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
@Produces( { MediaType.TEXT_PLAIN })
Public Response stuff(@FormParam("contractType") Integer stuff1, ..)
My maven dependencies:
<properties>
.
<com.sun.jersey.version>1.3</com.sun.jersey.version>
</properties>
.
<!-- Third party libraries -->
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.2.1.1</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
<version>${com.sun.jersey.version}</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-json</artifactId>
<version>${com.sun.jersey.version}</version>
<exclusions>
<exclusion>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.sun.jersey.contribs</groupId>
<artifactId>jersey-spring</artifactId>
<version>1.3</version>
</dependency>
I'm looking for a solution if you can help me.
Thank you in advance.
Patrick.