Вы должны быть в состоянии написать аннотированные классы JAXB, Джерси поддерживает их из коробки и автоматически анализирует их для вас. Возможно, это не самое эффективное решение, но оно создает действительно хорошее чистое приложение.
Если вы не докажете, что у вас есть проблема с производительностью (и можете отследить ее до JAXB), тогда я не буду беспокоиться о накладных расходах на маршаллинг / демаршаллинг.
Edit:
Аннотированные классы JAXB могут быть очень простыми. Моделирование XML как;
<customer>
<name>Fred</name>
<email>fred@email.com</email>
<id>12345</id>
</customer>
так же просто, как это;
@XmlRootElement
public class Customer
{
private String name;
private String email;
private long id;
public Customer()
{
}
//getters and setters
}
Затем вы можете написать такие службы;
@GET
@Produces(MediaType.APPLICATION_XML)
@Path("/getCustomer")
public Customer getCustomer()
{
Customer c = new Customer();
c.setName("Fred");
c.setEmail("fred@email.com");
c.setId(12345);
return c;
}
.. и клиентам это нравится;
Client client = Client.create();
WebResource resource = client.resource("myHost/getCustomer");
Customer fred = resource.get(Customer.class):
Его красиво просто.