我正在尝试为 RestEasy REST 服务创建 RestEasy 客户端,提供以下实体:
@SuppressWarnings("serial")
@Entity @Table(name="product")
@XmlRootElement(name="product")
public class Product implements Serializable, IHasTraits {
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(columnDefinition = "INT UNSIGNED")
private Long id;
结果是
[{"id":1,"name":"FOO","note":null,...}]
然后我尝试通过一个界面阅读它。我希望可以使用相同的模型类。
@Path("/")
public interface RestClient {
@GET
@Path("/products")
@Produces("application/json")
public List<Product> getProducts();
使用
RegisterBuiltin.register(ResteasyProviderFactory.getInstance());
this.client = ProxyFactory.create(RestClient.class, "http://localhost:8080/essc-portal/rest");
但是客户抛出:
引起:javax.xml.bind.UnmarshalException - 带有链接异常:
[com.sun.istack.SAXParseException2; 列号:0;意外元素(uri:“”,本地:“id”)。预期元素是 <{}product>]
我试图添加
@XmlElementWrapper(name="product")
或者
@XmlElement(type = Product.class, name = "product")
或者
@org.jboss.resteasy.annotations.providers.jaxb.Wrapped(element = "product")
但两者都没有帮助。
我应该如何解决这个问题?我不想创建额外的 bean 类。