次のような汎用 ServiceResponse クラスがあります。
@XMLRootElement
public class ServiceResponse<T>
{
private T data;
private String error;
//setters n getters
}
私の RESTEasy サービスから、xml 応答を次のように生成したいと考えています。
List<Customer> customers = someDAO.getCustomers();
ServiceResponse<List<Customer>> resp = new ServiceResponse<List<Customer>>();
resp.setData(customers);
resp.setError("No Error");
return resp;
or return Response.ok().entity(resp).build();
しかし、java.util.List の JaxbMarshallWriter がないため、これはエラーをスローしています。
GenericEntity クラスを使用して List をマーシャリングできます。
GenericEntity<List<Customer>> entity = new GenericEntity<List<Customer>>(customers){};
Response.ok(entity).build();
しかしGenericEntity<ServiceResponse<List<Customer>>>
、java.util.List の JaxbMarshallWriter がないと言って動作しません。
ジェネリック テンプレート (、) を使用してクラスをマーシャリング/アンマーシャリングするための回避策はありますか?