我需要使用xml绑定来解组映射是错误的。
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "MyMap")
public class MyMap {
@XmlElement(name = "Config", required = true)
private final List<Config> config = new ArrayList<Config>();
public List<Config> getConfig() {
return this.config;
}
}
@Override
public MyMap marshal(Map<String,String> v) throws Exception {
MyMap myMap = new MyMap();
List<Config> aList = myMap.getConfig();
for ( Map.Entry<String,String> e : v.entrySet() ) {
aList.add(new Config(e.getKey(), e.getValue()));
}
return myMap;
}
@Override
public Map<String,String> unmarshal(MyMap v) throws Exception {
Map<String,String> map = new HashMap<String,String>();
for (Config e : v.getConfig()) {
map.put(e.getKey(), e.getValue());
}
return map;
}
}
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "Config")
public class Config {
@XmlAttribute(name = "key", required = true)
private final String key;
@XmlAttribute(name = "value", required = true)
private final String value;
public Config(String key, String value) {
this.key = key;
this.value = value;
}
public Config() {
this.key = null;
this.value = null;
}
public String getKey() {
return key;
}
public String getValue() {
return value;
}
}
客户端代码:
String getConfigurationMethod = baseUrl + "getConfiguration";
byte[] getConfigurationResponse = (byte[]) this
.sendGetMethod(getConfigurationMethod);
unmarshaller = this.getUnmarshaller(MyMap.class);
reader = new StringReader(new String(getConfigurationResponse));
MyMap myMap = (MyMap) unmarshaller.unmarshal(reader);
错误消息:
我将客户端代码修改为:
byte[] getConfigurationResponse = (byte[]) this.util
.sendGetMethod(this.getConfigurationMethod);
Unmarshaller unmarshaller = this.getUnmarshaller(**WorkConfigRestWrapper.class**);
StringReader reader = new StringReader(new String(getConfigurationResponse));
**WorkConfigRestWrapper wrk** = (WorkConfigRestWrapper) unmarshaller
.unmarshal(reader);
我使用的是myMap而不是wrapper类。:(
我需要使用xml绑定解马歇尔映射给出错误。 错误消息: JAXBException:意外元素(URI:“”,本地:“WorkConfigRestWrapper”)。需要的元素是<{}config>、<{}mymap>javax.xml.bind.unmarshalException:意外元素(URI:“”,local:“workconfigrestwrapper”)。在com.sun.xml.bi
在这里,我将从XML创建java对象:
有几个关于这个问题的帮助主题,但我还没有找到一个解决我的问题的解决方案。我很欣赏在解决这个问题上的指导。 例外情况
我正在使用客户端web服务。1.发出WS请求并以XML格式获得响应。2.使用客户端WSDL,我生成了存根,因此使用同样的存根将XML解组到POJO。 看起来“element”标记是额外的,但我没有JAXB存根,它是在响应中添加的。 请帮忙解决。请帮帮忙。
我知道有很多像这样的问题,但没有一个给我提供正确的答案,所以我来这里。 下面是我得到的XML: 下面是相关的java类: