当前位置: 首页 > 知识库问答 >
问题:

Quarkus Panache实体上的JAXB注释导致REST调用失败

文鸣
2023-03-14
@Entity
@XmlRootElement(name = "Person")
@XmlAccessorType(XmlAccessType.NONE)
public class Person extends PanacheEntity {

    @XmlAttribute(name = "Name")
    public String name;
}
2019-12-08 08:30:01,917 ERROR [org.jbo.res.res.i18n] (vert.x-worker-thread-3) RESTEASY002005: Failed executing GET /person: org.jboss.resteasy.plugins.providers.jaxb.JAXBMarshalException: com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 1 counts of IllegalAnnotationExceptions
model.Person#name has mutually exclusive annotations @javax.xml.bind.annotation.XmlTransient and @javax.xml.bind.annotation.XmlAttribute
    this problem is related to the following location:
        at @javax.xml.bind.annotation.XmlTransient()
        at model.Person
    this problem is related to the following location:
        at @javax.xml.bind.annotation.XmlAttribute(namespace="##default", name="Name", required=false)
        at model.Person

    at org.jboss.resteasy.plugins.providers.jaxb.AbstractJAXBProvider.getMarshaller(AbstractJAXBProvider.java:187)
    at org.jboss.resteasy.plugins.providers.jaxb.AbstractJAXBProvider.writeTo(AbstractJAXBProvider.java:149)

共有1个答案

丁茂
2023-03-14

有趣的用例。

我认为在自动添加@XMLTransion之前,我们需要检查属性没有任何冲突的JAXB注释。

这可能也是JSON-B/Jackson的一个问题,因为我们做同样的事情。

 类似资料:
  • 考虑到JAXB注释的对象,是否有办法确定类/字段/方法在封送过程中是否会导致xsi: type? 是XmlElement注释, 我唯一需要担心的情况? 我正在编写一个Lua解组器,在这里我们删除了很多常见的xml类型信息,我正在尝试找出如何将传入的Lua与JAXB匹配。 谢谢 --更新-- 下面是一个简单的示例,说明了问题: 当我收到一个动物对象时,我可以查询动物的注释来检测它应该是狗或猫而不是动

  • 我有两个类:Person和PersonAdapter。Person是从wsdl生成的,不能更改。 PersonAdapter是Person的对象适配器,具有一些附加属性。类的对象提供给我的服务的客户端。我将所有JPA和JAXB注释添加到PersonAdapter类,因为我无法更改Person类。 有没有可能解决这个问题?

  • 我正在尝试使用spring Boot运行一个web应用程序。 将密码映射为硬编码值。 我的问题是:当应用程序运行并且在主类上使用注释时,只要它命中URL就会发生以下异常: javax.servlet.ServletException:在org.springframework.web.servlet.dispatcherservlet.render(dispatcherservlet.java:13

  • 这篇文章是applicationcontext.xml中bean声明的连续性 我有一个使用Spring3和Hibernate4以及JSF2的小应用程序,当我运行我得到的应用程序时。 ManagedBean: 并且我有注入注释: 在EmployeeService中,我有如下注释: 更新2 ApplicationContext.xml:

  • 我在这里使用教程来理解JAXB。 当编写器开始创建文档的根时,编写器开始如下: 尽管我将手动生成我的类,而不是让Eclipse来完成,但我将为我的jar文件提供一个(不是打包在里面,而是打包在包含jar文件的文件夹中),以便当我的应用程序启动时,它将验证XML文档是否已被篡改。 因此,在XSD文件中,targetNamespace将是de.vogella。xml。jaxb。模型,因为它在上面被声明

  • 我有两个映射到OneToMany、ManyToOne的类,我得到了异常: org.hibernate.annotationException:mappedBy引用了一个未知的目标实体属性:entity_package.ticketentity.ownerEntity in entity_package.userentity.ownedTickets 公共类TicketEntity实现可序列化{ 怎