繁体   English   中英

使用Java将请求对象设置为JAXBElement

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM