有一个Web服务在两个系统中运行:
-
Windows 7 x64、Apache Tomcat/8.5.16、JVM 1.8.0_65-b17
-
Web服务看起来像:
public class Order implements Serializable {
@OneToMany(cascade = {CascadeType.PERSIST, CascadeType.REFRESH, CascadeType.MERGE, CascadeType.DETACH}, mappedBy = "orderId")
private List<Item> itemList;
// getters and setters
}
...
public class Item implements Serializable {
@JoinColumn(name = "order_id", referencedColumnName = "id")
@ManyToOne(optional = false)
@XmlJavaTypeAdapter(OrderAdapter.class)
private Order orderId;
// getters and setters
}
...
@GET
@Produces({"application/xml", "application/json"})
public List<Order> findAll(@HeaderParam("authorization") String authString) throws Exception {
Query q = em.createNativeQuery("SELECT * FROM order", Order.class);
return q.getResultList();
}
问题:webservice在第一个服务器中运行正常,没有错误。在第二台服务器中,我遇到了错误:
未找到媒体类型=应用程序/xml,类型=类的MessageBodyWriter
java.util。向量,genericType=java.util.List
@OneToMany(cascade = {CascadeType.PERSIST, CascadeType.REFRESH, CascadeType.MERGE, CascadeType.DETACH}, mappedBy = "orderId")
收件人:
@OneToMany(cascade = CascadeType.ALL, mappedBy = "orderId")
那么,为什么同一个webservice在第一个服务器中运行正常,而在第二个服务器中导致错误呢?和MessageBodyWriter和CascadeType有什么关系?