我有一个包含对象列表的 SOAP 请求。对象有一个 java 对象字段。
当我在我的 Java WebService 实现方法中收到请求时,对象字段的所有值都是“com.sun.org.apache.xerces.internal.dom.ElementNSImpl”的实例,而不是原始对象类.
如何在不丢失所有值的原始 java 类的情况下将 Java 对象传递给 Web 服务?
类:
import java.io.Serializable;
import java.util.HashMap;
import java.util.List;
import javax.xml.bind.annotation.XmlTransient;
public class Request implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1358291145144128010L;
private List<externalField> externalFields;
public Request(){}
public void setExternalFields(List<externalField> camposFFCCExternal) {
this.camposFFCCExternal = camposFFCCExternal;
}
public List<externalField> getExternalFields() {
return camposFFCCExternal;
}
}
外部字段类:
import java.io.Serializable;
public class externalField implements Serializable {
/**
*
*/
private static final long serialVersionUID = 8248866248138301848L;
private String key;
private Object value;
public void setClave(String key) {
this.key = key;
}
public String getClave() {
return key;
}
public void setValor(Object value) {
this.value = value;
}
public Object getValor() {
return value;
}
}
最佳答案
我认为您不能在不告诉 jaxb 可能的类型的情况下执行此操作。如果您对 xml 序列化有影响,则可以使用 anyType 执行此操作: How to create java object from 'anyType' returned from service using JAXB?
或者,如果可能的对象集已知,您可以尝试定义类型选择:
http://blog.bdoughan.com/2010/10/jaxb-and-xsd-choice-xmlelements.html
希望这能给您一些继续前进的想法。
关于java - 将 Java Map<String,Object> 传递给 WebService,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46909227/