(Restlet 2.0.7 SE, running in Equinox, with Jetty extension, J2SE 1.6.0_11, 
Ubuntu 10.04)

I am trying to use the JAXB extension (via ClientResource) to serialize some 
DTO's. I definitely have all the bundles specified in lib/readme.txt for the 
JAXB extension loaded, and everything resolves. However, I getting this error 
(more detail below) when trying to put a DTO from client to server:

May 7, 2011 1:10:39 PM org.restlet.resource.UniformResource doCatch
WARNING: Exception or error caught in resource
java.lang.NoClassDefFoundError: javax/xml/transform/sax/SAXSource
        at org.restlet.ext.jaxb.JaxbConverter.toObject(JaxbConverter.java:155)
        at 
org.restlet.service.ConverterService.toObject(ConverterService.java:158)

I thought javax.xml.transform.sax.SAXSource was available from the J2SE. The 
API docs for J2SE 1.6 say it is.

----------

My DTO class is annotated with JAXB annotations and I do have an ObjectFactory 
class as well as a jaxb.index in the same package:

@XmlRootElement(name="example", namespace="http://example.com/example";)
@XmlAccessorType(XmlAccessType.FIELD)
public class ExampleDTO
{
    @XmlElement(required=true)
    private String id;
    
    public ExampleDTO()
    {
        super();
    }
    
    public String getId()
    {
        return id;
    }
    public void setId( String id )
    {
        this.id = id;
    }
}

I have the following resource interface:

public interface ExampleResource
{
    @Get("xml")
    ExampleDTO retrieve();

    @Put("xml")
    void store( ExampleDTO dto );
}

that is implemented by a ServerResource class.

On the client, I have attempted to invoke the ExampleResource.store(ExampleDTO) 
the following two ways:

    ExampleDTO example = new ExammpleDTO();
    example.setId( anId );
    ClientResource clientResource = new ClientResource( uri );
    clientResource.put( new JaxbRepresentation<ProgramDTO>( 
MediaType.APPLICATION_XML, program ) );

and:

    ExampleDTO example = new ExammpleDTO();
    example.setId( anId );
    ExampleResource exampleResource = new ClientResource( uri, 
ExampleResource.class );
    exampleResource.store( example );

In both cases, I get the same errors.

Client-side error:

Exception in thread "main" Internal Server Error (500) - Server Error
        at 
org.restlet.resource.ClientResource$1.invoke(ClientResource.java:1652)
        at $Proxy6.store(Unknown Source)
        at com.example.Client.putExample(Client.java:93)


Server-side error:

May 7, 2011 12:43:55 PM org.restlet.resource.UniformResource doCatch
WARNING: Exception or error caught in resource
java.lang.NoClassDefFoundError: javax/xml/transform/sax/SAXSource
        at org.restlet.ext.jaxb.JaxbConverter.toObject(JaxbConverter.java:155)
        at 
org.restlet.service.ConverterService.toObject(ConverterService.java:158)
        at 
org.restlet.resource.UniformResource.toObject(UniformResource.java:644)
        at org.restlet.resource.ServerResource.doHandle(ServerResource.java:431)
        at org.restlet.resource.ServerResource.doHandle(ServerResource.java:490)
        at org.restlet.resource.ServerResource.put(ServerResource.java:1139)
        at org.restlet.resource.ServerResource.doHandle(ServerResource.java:375)
        at 
org.restlet.resource.ServerResource.doNegotiatedHandle(ServerResource.java:591)
        at 
org.restlet.resource.ServerResource.doConditionalHandle(ServerResource.java:299)
        at org.restlet.resource.ServerResource.handle(ServerResource.java:846)
        at org.restlet.resource.Finder.handle(Finder.java:510)
        at org.restlet.routing.Filter.doHandle(Filter.java:156)
        at org.restlet.routing.Filter.handle(Filter.java:203)
        at org.restlet.routing.Router.doHandle(Router.java:497)
        at org.restlet.routing.Router.handle(Router.java:737)
        at org.restlet.routing.Filter.doHandle(Filter.java:156)
        at org.restlet.routing.Filter.handle(Filter.java:203)
        at org.restlet.routing.Filter.doHandle(Filter.java:156)
        at org.restlet.routing.Filter.handle(Filter.java:203)
        at org.restlet.routing.Filter.doHandle(Filter.java:156)
        at 
org.restlet.engine.application.StatusFilter.doHandle(StatusFilter.java:151)
        at org.restlet.routing.Filter.handle(Filter.java:203)
        at org.restlet.routing.Filter.doHandle(Filter.java:156)
        at org.restlet.routing.Filter.handle(Filter.java:203)
        at org.restlet.engine.ChainHelper.handle(ChainHelper.java:111)
        at 
org.restlet.engine.application.ApplicationHelper.handle(ApplicationHelper.java:72)
        at org.restlet.Application.handle(Application.java:388)
        at org.restlet.routing.Filter.doHandle(Filter.java:156)
        at org.restlet.routing.Filter.handle(Filter.java:203)
        at org.restlet.routing.Router.doHandle(Router.java:497)
        at org.restlet.routing.Router.handle(Router.java:737)
        at org.restlet.routing.Filter.doHandle(Filter.java:156)
        at org.restlet.routing.Filter.handle(Filter.java:203)
        at org.restlet.routing.Router.doHandle(Router.java:497)
        at org.restlet.routing.Router.handle(Router.java:737)
        at org.restlet.routing.Filter.doHandle(Filter.java:156)
        at 
org.restlet.engine.application.StatusFilter.doHandle(StatusFilter.java:151)
        at org.restlet.routing.Filter.handle(Filter.java:203)
        at org.restlet.routing.Filter.doHandle(Filter.java:156)
        at org.restlet.routing.Filter.handle(Filter.java:203)
        at org.restlet.engine.ChainHelper.handle(ChainHelper.java:111)
        at org.restlet.Component.handle(Component.java:387)
        at org.restlet.Server.handle(Server.java:488)
        at org.restlet.engine.ServerHelper.handle(ServerHelper.java:71)
        at 
org.restlet.engine.http.HttpServerHelper.handle(HttpServerHelper.java:150)
        at 
org.restlet.ext.jetty.JettyServerHelper$WrappedServer.handle(JettyServerHelper.java:167)
        at 
org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:594)
        at 
org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:1059)
        at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:856)
        at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:211)
        at 
org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:424)
        at 
org.eclipse.jetty.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:506)
        at 
org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:436)
        at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.ClassNotFoundException: javax.xml.transform.sax.SAXSource
        at 
org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:506)
        at 
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:422)
        at 
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410)
        at 
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
        ... 54 more
May 7, 2011 12:43:55 PM org.restlet.engine.log.LogFilter afterHandle
INFO: 2011-05-07        12:43:55        127.0.0.1       -       127.0.0.1       
8182    PUT     /programs/current       -500    426     -       29      
http://localhost:8182   Restlet-Framework/2.0.7 -

------------------------------------------------------
http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2732393

Reply via email to