このエンティティを提供して、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:""、local:"id")。期待される要素は <{}product>] です
追加してみました
@XmlElementWrapper(name="product")
また
@XmlElement(type = Product.class, name = "product")
また
@org.jboss.resteasy.annotations.providers.jaxb.Wrapped(element = "product")
しかし、どちらも役に立ちませんでした。
これをどのように解決すればよいですか?追加の Bean クラスを作成したくありません。