[英]Set request object as JAXBElement using Java
我正在尝试使用Java设置一个请求对象。 但是,它要求它仅接受JAXBElement对象,因此我不确定如何创建这样的请求对象。 我的请求对象有一组setter和getter。 这是我的代码
LOSRequest losRequest = new LOSRequest();
losRequest.setData(request);
可能的解决方案:setData(javax.xml.bind.JAXBElement)
这是LOSRequest
@javax.xml.bind.annotation.XmlAccessorType(javax.xml.bind.annotation.XmlAccessType.FIELD)
@javax.xml.bind.annotation.XmlType(name = "LOSRequest", propOrder = {"data", "requestid", "userCtx"})
public class LOSRequest {
@javax.xml.bind.annotation.XmlElementRef(name = "data", namespace = "http://to.service.los/xsd", type = javax.xml.bind.JAXBElement.class)
protected javax.xml.bind.JAXBElement<java.lang.String> data;
@javax.xml.bind.annotation.XmlElementRef(name = "requestid", namespace = "http://to.service.los/xsd", type = javax.xml.bind.JAXBElement.class)
protected javax.xml.bind.JAXBElement<java.lang.String> requestid;
@javax.xml.bind.annotation.XmlElementRef(name = "userCtx", namespace = "http://to.service.los/xsd", type = javax.xml.bind.JAXBElement.class)
protected javax.xml.bind.JAXBElement<los.service.to.xsd.LOSUserContext> userCtx;
有任何想法吗?
使用带注释的成员:
import javax.xml.bind.JAXBElement;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElementRef;
import javax.xml.bind.annotation.XmlType;
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "LOSRequest", propOrder = {"data", "requestid", "userCtx"})
public class LOSRequest {
@XmlElementRef(name = "data", namespace = "http://to.service.los/xsd", type = JAXBElement.class)
protected String data;
// Getter/Setter
}
那你应该可以做
LOSRequest l = new LOSRequest();
l.setData("foo");
编辑:
这与包裹成员的代码不同:
protected JAXBElement<String> data;
当然,这种包装使不可能将简单的String
设置为data
成员的值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.