Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
XmlInverseReference、Hibernate、JAXWS和Moxy_Hibernate_Jax Ws_Moxy - Fatal编程技术网

XmlInverseReference、Hibernate、JAXWS和Moxy

XmlInverseReference、Hibernate、JAXWS和Moxy,hibernate,jax-ws,moxy,Hibernate,Jax Ws,Moxy,我似乎无法让moxy使用JAX-WSWeb服务和hibernate。不管我怎么做,@XMLInverseReference都不起作用。我希望它在站点上填写应用程序变量。我做错了什么或理解错了什么 我收到:org.hibernate.PropertyValueException:notnull属性引用空值或暂时值:Site.application。如果我将@xmlement添加到Site.application,那么我将从JAXB获得一个循环引用异常 值得一提的是,所有封送和解封送都是由JAX-W

我似乎无法让moxy使用JAX-WSWeb服务和hibernate。不管我怎么做,
@XMLInverseReference
都不起作用。我希望它在
站点上填写
应用程序
变量
。我做错了什么或理解错了什么

我收到:
org.hibernate.PropertyValueException:notnull属性引用空值或暂时值:Site.application
。如果我将
@xmlement
添加到
Site.application
,那么我将从JAXB获得一个循环引用异常

值得一提的是,所有封送和解封送都是由JAX-WSServlet端点处理的

此外,我还通过执行以下操作验证了我的jaxb.properties是否正常工作:

public class Run {
    public static void main(String[] args) throws Exception {
        System.out.println(JAXBContext.newInstance(Site.class).getClass());
    }
}

应用程序:

@Entity
@Table(schema = "dbo", name = "Applications")
@XmlAccessorType(XmlAccessType.NONE)
@XmlRootElement
public class Application {
    @Id
    @Column(name = "id", nullable = false, insertable = false, updatable = false)
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @RemoteProperty
    @XmlElement
    private Integer id;
    @Column(name = "code", nullable = false, unique = true)
    @NaturalId
    @XmlElement
    private String code;
    @Column(name = "name")
    @XmlElement
    private String name;
    @OneToMany(mappedBy = "application", fetch = FetchType.EAGER)
    @Cache(usage = org.hibernate.annotations.CacheConcurrencyStrategy.READ_WRITE)
    @Cascade(value = {CascadeType.MERGE, CascadeType.PERSIST, CascadeType.DELETE, CascadeType.DELETE_ORPHAN})
    @Sort(type = SortType.NATURAL)
    @XmlElement
    private Set<Site> sites = new TreeSet<Site>();
}

JAX-WS实现不一定尊重JAXB.properties。如果您正在使用WebLogic 12.1.1或GlassFish 3.1.2,以下内容将有所帮助:


JAX-WS实现不一定尊重JAXB.properties。如果您正在使用WebLogic 12.1.1或GlassFish 3.1.2,以下内容将有所帮助:


我们正在使用Tomcat,我会看一看。我们正在使用Tomcat,我会看一看。
@Entity
@Table(schema = "dbo", name = "Sites")
@XmlAccessorType(XmlAccessType.NONE)
@XmlRootElement
public class Site implements Identifiable<Integer>, Comparable<Site> {
    @Id
    @Column(name = "id", nullable = false, insertable = false, updatable = false)
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;
    @Column(name = "address", unique = true)
    @NaturalId(mutable = true)
    @XmlID
    private String address;
    @Column(name = "ssl")
    @XmlAttribute(required = true)
    private boolean ssl;
    @ManyToOne
    @JoinColumn(name = "applicationCode", nullable = false, referencedColumnName = "code")
    @XmlInverseReference(mappedBy = "code")
    private Application application;
}
javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory