以下是我在JAXB Unmarshalling过程中使用的JAXB Binding类。
package com;
@XmlRootElement(name = "request")
@XmlAccessorType(XmlAccessType.FIELD)
public class CustAcct {
@XmlAttribute
private String cust;
@XmlAttribute
private String acct;
public CustAcct() {
super();
}
public String getCust() {
return cust;
}
public void setCust(String s) {
cust = s;
}
public String getAcct() {
return acct;
}
public void setAcct(String s) {
acct = s;
}
}
现在我的问题是,我无法在上面的类中包含注释@Context ServletContext。
public class CustAcct {
@XmlAttribute
private String cust;
@XmlAttribute
private String acct;
@Context
ServletContext cont ;
我收到了此消息
的异常javax.servlet.servletcontext is an interface and jaxb can't handle interfaces
请告诉我是否可以在JAXB Binding类中包含内置的ServletContext注释?
提前致谢。
我试过这种方式,
@XmlRootElement(name = "request")
@XmlAccessorType(XmlAccessType.FIELD)
public class CustAcct {
@XmlAttribute
private String acct;
@XmlTransient
@Context
ServletContext con;
public CustAcct() {
super();
}
public String getAcct() {
return acct;
}
public void setAcct(String s) {
acct = s;
}
}
但是当我尝试在Jersey服务中访问它时,我得到以下异常
SEVERE: The RuntimeException could not be mapped to a response, re-throwing to the HTTP container
java.lang.NullPointerException
答案 0 :(得分:1)
您可以使用@XmlTransient
注释该字段。这可以防止您的JAXB(JSR-222)实现将其视为映射数据。
了解更多信息