[英]Serializing a generic field with jaxb using XMLAdapter
我們有一個定義對象ID(UID)的類:
公共最終類UUID實現可序列化,可比較{....}
和另一類:
@XmlType(name = "ChangeFieldValueInstruction")
public static class ChangeFieldValueInstruction<T> extends Instruction
{
private T newVal;
public ChangeFieldValueInstruction()
{
super();
}
public ChangeFieldValueInstruction(String fieldPath, T newVal)
{
super(fieldPath);
setNewVal(newVal);
}
public T getNewVal()
{
return newVal;
}
public void setNewVal(T newVal)
{
this.newVal = newVal;
}
................
}
此類(UpdateObjectRequest)通過Web服務傳遞(我們使用spring)。
我有一個package-info文件,該文件為UUID.class定義了一個適配器,但是當我們將UID對象傳遞給newVal時,我們看到該適配器沒有被調用,實際上是默認的UID構造函數被調用。 我嘗試使用@XmlAnyElement注釋getNewVal()方法,並將@XmlJavaTypeAdapter也添加到UID類中(正如有人在此處建議的那樣),但仍然無法正常工作。 還嘗試在xsd中使用@XmlSeeAlso(UUID.class)BTW注釋UpdateObjectRequest,我看到newVal被定義為xs:anyType
那么,有誰知道我該怎么做? 10倍
不可能,恕我直言。
這應該如何工作? 您將擁有一個SOAP WebService有效負載的動態XML模式。 接收服務應該如何反應,他無法猜測元素的類型。
使用SOAP,Web服務及其操作,可以在WSDL-WebService定義中預定義XML類型。 客戶端和服務器可以通過這種方式進行互操作,因為它們是根據有效載荷格式(不是動態的)進行協商的。
您需要精確定義哪些消息,類型可以在ws客戶端和服務器之間傳遞
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.