Я создал XML-схему, аннотируя существующий класс модели домена Java, теперь, когда я пытаюсь использовать JAXB для отмены отправки представления, полученного в моем веб-сервисе restlet, я получаю множество ошибки, какие бы я ни пытались попробовать. Я новичок в обоих restlets и JAXB так указывая мне в направлении достойного примера использования как было бы полезно только один я смог найти до сих пор здесь: ExampleUnmarshalling XML с использованием JAXB в методе acceptRepresentation для restlet
Мои ошибки:
Если я пытаюсь использовать restlet.ext.jaxb JaxbRepresentation:
@Override
public void acceptRepresentation(Representation representation)
throws ResourceException {
JaxbRepresentation<Order> jaxbRep = new JaxbRepresentation<Order>(representation, Order.class);
jaxbRep.setContextPath("com.package.service.domain");
Order order = null;
try {
order = jaxbRep.getObject();
}catch (IOException e) {
...
}
от этого я получаю исключение в java.io.IOException: Unable to unmarshal the XML representation.Unable to locate unmarshaller.
в jaxbRep.getObject()
Так что я ALS о попробовал другой подход, чтобы увидеть, если это имело значение, используя следующий код вместо:
@Override
public void acceptRepresentation(Representation representation)
throws ResourceException {
try{
JAXBContext context = JAXBContext.newInstance(Order.class);
Unmarshaller unmarshaller = context.createUnmarshaller();
Order order = (Order) unmarshaller.unmarshal(representation.getStream());
} catch(UnmarshalException ue) {
...
} catch(JAXBException je) {
...
} catch(IOException ioe) {
...
}
Однако это также дает мне следующее исключение, когда вызов JAXBContext.newInstance сделан.
java.lang.NoClassDefFoundError: javax/xml/bind/annotation/AccessorOrder
Заранее благодарим за любые советы.
Создание экземпляра маршаллера для каждой записи() очень дорого. Restlet кэширует экземпляры, так что это происходит один раз. Я думаю, проблема может заключаться в том, что Restlet привязывается к автономной jaxb jar вместо использования реализации, которая входит в JRE. Я собираюсь изучить эту проблему, потому что это вызывает проблемы в App Engine. – ZiglioUK