簡體   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