title: JaxbRepresentation gives error "doesnt contain ObjectFactory.class or jaxb.index"
body: <p>I am trying to create a sample test application which converts an object to JaxbRepresentation. But when I try to run this, it gives me an error.</p>
  
  <p>Main.java file</p>
  
  <pre><code>package test_jaxb;
  
  import org.restlet.Server;
  import org.restlet.data.Protocol;
  
  public class Main {
  
      /**
       * @param args the command line arguments
       */
      public static void main(String[] args) throws Exception {
        Server helloServer = new Server(Protocol.HTTP, 8111,
        TestResource.class);
        helloServer.start();
      }
  
  }
  </code></pre>
  
  <p>TestResource.java file</p>
  
  <pre><code>package test_jaxb;
  
  import org.restlet.ext.jaxb.JaxbRepresentation;
  import org.restlet.representation.Representation;
  import org.restlet.resource.ResourceException;
  import org.restlet.resource.ServerResource;
  
  public class TestResource extends ServerResource{
  
     @Override
     protected Representation get() throws ResourceException {
        SampleResponse res = new SampleResponse();
        res.setMsg("Success");
        res.setStatusCode(0);
        JaxbRepresentation&lt;SampleResponse&gt; representation = new JaxbRepresentation&lt;SampleResponse&gt;(res);
        return representation;
     }
  }
  </code></pre>
  
  <p>SampleResponse.java file</p>
  
  <pre><code>package test_jaxb;
  
  import javax.xml.bind.annotation.XmlElement;
  import javax.xml.bind.annotation.XmlRootElement;
  
  @XmlRootElement(name="Response")
  public class SampleResponse {
     private int statusCode;
     private String msg;
  
     @XmlElement(name="Msg")
     public String getMsg() {
        return msg;
     }
  
     public void setMsg(String msg) {
        this.msg = msg;
     }
  
     @XmlElement(name="StatusCode")
     public int getStatusCode() {
        return statusCode;
     }
  
     public void setStatusCode(int statusCode) {
        this.statusCode = statusCode;
     }
  }
  </code></pre>
  
  <p>When I run this on the server, it throws the following error:</p>
  
  <pre><code>WARNING: Problem creating Marshaller
  javax.xml.bind.JAXBException: "test_jaxb" doesnt contain ObjectFactory.class or jaxb.index
      at com.sun.xml.internal.bind.v2.ContextFactory.createContext(ContextFactory.java:119)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:132)
      at javax.xml.bind.ContextFinder.find(ContextFinder.java:299)
      at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:372)
      at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:337)
      at org.restlet.ext.jaxb.JaxbRepresentation.getContext(JaxbRepresentation.java:83)
      at org.restlet.ext.jaxb.internal.Marshaller$1.initialValue(Marshaller.java:68)
      at org.restlet.ext.jaxb.internal.Marshaller$1.initialValue(Marshaller.java:64)
      at java.lang.ThreadLocal.setInitialValue(ThreadLocal.java:141)
      at java.lang.ThreadLocal.get(ThreadLocal.java:131)
      at org.restlet.ext.jaxb.internal.Marshaller.getMarshaller(Marshaller.java:163)
      at org.restlet.ext.jaxb.internal.Marshaller.marshal(Marshaller.java:216)
      at org.restlet.ext.jaxb.JaxbRepresentation.write(JaxbRepresentation.java:527)
      at org.restlet.representation.WriterRepresentation.write(WriterRepresentation.java:104)
      at org.restlet.engine.http.connector.Connection.writeMessageBody(Connection.java:873)
      at org.restlet.engine.http.connector.Connection.writeMessage(Connection.java:818)
      at org.restlet.engine.http.connector.ServerConnection.writeMessage(ServerConnection.java:334)
      at org.restlet.engine.http.connector.Connection.writeMessages(Connection.java:954)
      at org.restlet.engine.http.connector.BaseServerHelper.handleOutbound(BaseServerHelper.java:201)
      at org.restlet.engine.http.connector.BaseHelper.handleNextOutbound(BaseHelper.java:425)
      at org.restlet.engine.http.connector.BaseServerHelper.handleInbound(BaseServerHelper.java:174)
      at org.restlet.engine.http.connector.BaseHelper.handleNextInbound(BaseHelper.java:418)
      at org.restlet.engine.http.connector.Connection.readMessages(Connection.java:695)
      at org.restlet.engine.http.connector.Controller$2.run(Controller.java:95)
      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
      at java.lang.Thread.run(Thread.java:619)
  May 16, 2011 7:05:12 AM org.restlet.ext.jaxb.internal.Marshaller getMarshaller
  WARNING: Unable to locate marshaller.
  May 16, 2011 7:05:12 AM org.restlet.ext.jaxb.JaxbRepresentation write
  WARNING: JAXB marshalling error caught.
  javax.xml.bind.JAXBException: Unable to locate marshaller.
      at org.restlet.ext.jaxb.internal.Marshaller.getMarshaller(Marshaller.java:166)
      at org.restlet.ext.jaxb.internal.Marshaller.marshal(Marshaller.java:216)
      at org.restlet.ext.jaxb.JaxbRepresentation.write(JaxbRepresentation.java:527)
      at org.restlet.representation.WriterRepresentation.write(WriterRepresentation.java:104)
      at org.restlet.engine.http.connector.Connection.writeMessageBody(Connection.java:873)
      at org.restlet.engine.http.connector.Connection.writeMessage(Connection.java:818)
      at org.restlet.engine.http.connector.ServerConnection.writeMessage(ServerConnection.java:334)
      at org.restlet.engine.http.connector.Connection.writeMessages(Connection.java:954)
      at org.restlet.engine.http.connector.BaseServerHelper.handleOutbound(BaseServerHelper.java:201)
      at org.restlet.engine.http.connector.BaseHelper.handleNextOutbound(BaseHelper.java:425)
      at org.restlet.engine.http.connector.BaseServerHelper.handleInbound(BaseServerHelper.java:174)
      at org.restlet.engine.http.connector.BaseHelper.handleNextInbound(BaseHelper.java:418)
      at org.restlet.engine.http.connector.Connection.readMessages(Connection.java:695)
      at org.restlet.engine.http.connector.Controller$2.run(Controller.java:95)
      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
      at java.lang.Thread.run(Thread.java:619)
  May 16, 2011 7:05:12 AM org.restlet.ext.jaxb.internal.Marshaller$1 initialValue
  WARNING: Problem creating Marshaller
  javax.xml.bind.JAXBException: "failure" doesnt contain ObjectFactory.class or jaxb.index
      at com.sun.xml.internal.bind.v2.ContextFactory.createContext(ContextFactory.java:119)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:132)
      at javax.xml.bind.ContextFinder.find(ContextFinder.java:299)
      at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:372)
      at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:337)
      at org.restlet.ext.jaxb.JaxbRepresentation.getContext(JaxbRepresentation.java:83)
      at org.restlet.ext.jaxb.internal.Marshaller$1.initialValue(Marshaller.java:68)
      at org.restlet.ext.jaxb.internal.Marshaller$1.initialValue(Marshaller.java:64)
      at java.lang.ThreadLocal.setInitialValue(ThreadLocal.java:141)
      at java.lang.ThreadLocal.get(ThreadLocal.java:131)
      at org.restlet.ext.jaxb.internal.Marshaller.getMarshaller(Marshaller.java:163)
      at org.restlet.ext.jaxb.internal.Marshaller.marshal(Marshaller.java:216)
      at org.restlet.ext.jaxb.JaxbRepresentation.write(JaxbRepresentation.java:535)
      at org.restlet.representation.WriterRepresentation.write(WriterRepresentation.java:104)
      at org.restlet.engine.http.connector.Connection.writeMessageBody(Connection.java:873)
      at org.restlet.engine.http.connector.Connection.writeMessage(Connection.java:818)
      at org.restlet.engine.http.connector.ServerConnection.writeMessage(ServerConnection.java:334)
      at org.restlet.engine.http.connector.Connection.writeMessages(Connection.java:954)
      at org.restlet.engine.http.connector.BaseServerHelper.handleOutbound(BaseServerHelper.java:201)
      at org.restlet.engine.http.connector.BaseHelper.handleNextOutbound(BaseHelper.java:425)
      at org.restlet.engine.http.connector.BaseServerHelper.handleInbound(BaseServerHelper.java:174)
      at org.restlet.engine.http.connector.BaseHelper.handleNextInbound(BaseHelper.java:418)
      at org.restlet.engine.http.connector.Connection.readMessages(Connection.java:695)
      at org.restlet.engine.http.connector.Controller$2.run(Controller.java:95)
      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
      at java.lang.Thread.run(Thread.java:619)
  May 16, 2011 7:05:12 AM org.restlet.ext.jaxb.internal.Marshaller getMarshaller
  WARNING: Unable to locate marshaller.
  May 16, 2011 7:05:12 AM org.restlet.engine.http.connector.Connection writeMessage
  WARNING: Exception while writing the message body.
  java.io.IOException: Unable to locate marshaller.
      at org.restlet.ext.jaxb.JaxbRepresentation.write(JaxbRepresentation.java:539)
      at org.restlet.representation.WriterRepresentation.write(WriterRepresentation.java:104)
      at org.restlet.engine.http.connector.Connection.writeMessageBody(Connection.java:873)
      at org.restlet.engine.http.connector.Connection.writeMessage(Connection.java:818)
      at org.restlet.engine.http.connector.ServerConnection.writeMessage(ServerConnection.java:334)
      at org.restlet.engine.http.connector.Connection.writeMessages(Connection.java:954)
      at org.restlet.engine.http.connector.BaseServerHelper.handleOutbound(BaseServerHelper.java:201)
      at org.restlet.engine.http.connector.BaseHelper.handleNextOutbound(BaseHelper.java:425)
      at org.restlet.engine.http.connector.BaseServerHelper.handleInbound(BaseServerHelper.java:174)
      at org.restlet.engine.http.connector.BaseHelper.handleNextInbound(BaseHelper.java:418)
      at org.restlet.engine.http.connector.Connection.readMessages(Connection.java:695)
      at org.restlet.engine.http.connector.Controller$2.run(Controller.java:95)
      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
      at java.lang.Thread.run(Thread.java:619)
  May 16, 2011 7:05:12 AM org.restlet.engine.http.connector.ServerConnection writeMessage
  INFO: An exception occured while writing the response
  java.io.IOException: Unable to locate marshaller.
      at org.restlet.ext.jaxb.JaxbRepresentation.write(JaxbRepresentation.java:539)
      at org.restlet.representation.WriterRepresentation.write(WriterRepresentation.java:104)
      at org.restlet.engine.http.connector.Connection.writeMessageBody(Connection.java:873)
      at org.restlet.engine.http.connector.Connection.writeMessage(Connection.java:818)
      at org.restlet.engine.http.connector.ServerConnection.writeMessage(ServerConnection.java:334)
      at org.restlet.engine.http.connector.Connection.writeMessages(Connection.java:954)
      at org.restlet.engine.http.connector.BaseServerHelper.handleOutbound(BaseServerHelper.java:201)
      at org.restlet.engine.http.connector.BaseHelper.handleNextOutbound(BaseHelper.java:425)
      at org.restlet.engine.http.connector.BaseServerHelper.handleInbound(BaseServerHelper.java:174)
      at org.restlet.engine.http.connector.BaseHelper.handleNextInbound(BaseHelper.java:418)
      at org.restlet.engine.http.connector.Connection.readMessages(Connection.java:695)
      at org.restlet.engine.http.connector.Controller$2.run(Controller.java:95)
      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
      at java.lang.Thread.run(Thread.java:619)
  </code></pre>
  
  <p>Please someone help!!!</p>