gpt4 book ai didi

java - 解码 Web 服务响应时出错

转载 作者:太空宇宙 更新时间:2023-11-04 07:50:11 26 4
gpt4 key购买 nike

我正在使用 JAX-WS 调用 Web 服务。我想将内容转换为 Java 对象。

这是 Web 服务响应的内容部分。

<header xmlns="">
<store>
<store_id>1</store_id>
<store_name>ACME</store_name>
</store>
</header>

然后我创建了一个类,如下所示:

@XmlAccessorType(XmlAccessType.FIELD) 
@XmlType(name = "", propOrder = {
"store_id",
"store_name" })
@XmlRootElement(name = "store")
static public class store {
@XmlElement(name = "store_id", required = true)
protected String store_id;

@XmlElement(name = "store_name", required = true)
protected String store_name;
}

我的 JAXB 代码:

List result = service.getService1Soap12().getDivisions().getContent();
ElementNSImpl e =(ElementNSImpl)result.get(0);
JAXBContext context = JAXBContext.newInstance(store.class);
Unmarshaller um = context.createUnmarshaller();

JAXBElement element = (JAXBElement) um.unmarshal(e);
store customer = (store) element.getValue();

我收到以下错误:

Exception in thread "main" javax.xml.bind.UnmarshalException: unexpected element (uri:"", local:"store"). Expected elements are <{http://tempuri.org/}header>

我已经尝试了无数的方法来解决这个问题。任何帮助都会很棒!

最佳答案

尝试将 DOM 元素包装在 DOMSource 实例中并执行以下操作:

DOMSource domSource = new DOMSource(e);
JAXBElement<store> element =
unmarshaller.unmarshal(domSource, store.class);

通过提供您想要解码的类,JAXB impl 不需要根据根元素确定解码类。

关于java - 解码 Web 服务响应时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14614295/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com