I have an application using Jersey 1.3 and JAXB to return the XML
representation. I had a similar application working with Jersey 1.0.3, but
I must be missing something with this new version because it cannot find any
provider classes from the ScanningResourceConfig and it cannot find an
appropriate message body writer.
Part of my JAXB bean:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "User", propOrder = {
"id",
"username",
"status"
})
@XmlRootElement(name = "User")
public class User {
@XmlElement(required = true)
protected BigInteger id;
@XmlElement(required = true)
protected String username;
@XmlElement(required = true)
protected String status;
Root Resource class:
@Path("/auth")
public class TestController
{
@Context
UriInfo uriInfo;
@Context
Request request;
@Path("/{username}/authenticate")
@GET
@Produces("application/xml")
public User authenticate(@PathParam("username")String username)
{
System.out.println("USER: " + username);
User user = new User();
user.setName="sam";
user.setStatus="active";
return user;
}
}
Jul 18, 2010 7:50:35 PM com.sun.jersey.api.core.PackagesResourceConfig init
INFO: Scanning for root resource and provider classes in the packages:
com.ea.mythic.ops.pa_auth_service.controllers
Jul 18, 2010 7:50:35 PM com.sun.jersey.api.core.ScanningResourceConfig
logClasses
INFO: Root resource classes found:
class com.ea.mythic.ops.pa_auth_service.controllers.TestController
class com.ea.mythic.ops.pa_auth_service.controllers.AccountController
Jul 18, 2010 7:50:35 PM com.sun.jersey.api.core.ScanningResourceConfig init
INFO: No provider classes found.
Jul 18, 2010 7:50:35 PM
com.sun.jersey.server.impl.application.WebApplicationImpl _initiate
INFO: Initiating Jersey application, version 'Jersey: 1.3 06/17/2010 04:53
PM'
Jul 18, 2010 7:50:41 PM com.sun.jersey.spi.container.ContainerResponse write
SEVERE: A message body writer for Java class
com.ea.mythic.ops.pa_auth_service.db.user.User, and Java type class
com.ea.mythic.ops.pa_auth_service.db.user.User, and MIME media type
application/xml was not found
Jul 18, 2010 7:50:41 PM com.sun.jersey.spi.container.ContainerResponse write
SEVERE: The registered message body writers compatible with the MIME media
type are:
application/xml ->
com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider$App
com.sun.jersey.core.impl.provider.entity.DocumentProvider
com.sun.jersey.core.impl.provider.entity.SourceProvider$SourceWriter
com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider$App
com.sun.jersey.core.impl.provider.entity.XMLListElementProvider$App
*/* ->
com.sun.jersey.core.impl.provider.entity.FormProvider
com.sun.jersey.core.impl.provider.entity.StringProvider
com.sun.jersey.core.impl.provider.entity.ByteArrayProvider
com.sun.jersey.core.impl.provider.entity.FileProvider
com.sun.jersey.core.impl.provider.entity.InputStreamProvider
com.sun.jersey.core.impl.provider.entity.DataSourceProvider
com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider$General
com.sun.jersey.core.impl.provider.entity.ReaderProvider
com.sun.jersey.core.impl.provider.entity.DocumentProvider
com.sun.jersey.core.impl.provider.entity.StreamingOutputProvider
com.sun.jersey.core.impl.provider.entity.SourceProvider$SourceWriter
com.sun.jersey.server.impl.template.ViewableMessageBodyWriter
com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider$General
com.sun.jersey.core.impl.provider.entity.XMLListElementProvider$General
Jul 18, 2010 7:50:41 PM com.sun.jersey.spi.container.ContainerResponse
traceException
SEVERE: Mapped exception to response: 500 (Internal Server Error)
javax.ws.rs.WebApplicationException
at
com.sun.jersey.spi.container.ContainerResponse.write(ContainerResponse.java:273)
at
com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1140)
at
com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1053)
at
com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1043)
Thanks for any help in advance.
Ci-Ci