我有一个客户端,我正在构建访问Web服务.我正在使用一些JAXB生成的类(Netbeans 6.9)来解组我的xml数据.
尝试从此Web服务解组InputStream响应时,我收到意外的元素错误,如果我将响应保存到文件,我也会得到相同的意外元素错误.
javax.xml.bind.UnmarshalException: unexpected element (uri:"http://www.w3.org/2003/05/soap-envelope", local:"Envelope"). Expected elements are <{http://www.cmicdataservices.com/}Authentication>,....
Run Code Online (Sandbox Code Playgroud)
将数据保存到文件后,我可以进入并删除SOAP标记(信封,正文,标题),然后运行解组,没有问题.
我还没有真正找到一种方法来使解组忽略这些标签.有谁知道可以做些什么来忽略这些标签?
这是主要方法和流返回的类.
public static void main(String[] args) {
JAXBContext jaxbContext = null;
try {
CMICData cmic = new CMICData();
jaxbContext = JAXBContext.newInstance("cmic.ajrs.com");
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
GetCurrentDataVer1Response response = (GetCurrentDataVer1Response)
unmarshaller.unmarshal( cmic.getCMICIs("GetCurrentDataVer1"));
DatacenterDataVer1 dataSet = response.getGetCurrentDataVer1Result();
List products = dataSet.getAProductBase().getProductBase();
// print some primary keys to show data being processed.
for(Iterator<ProductBase> iter = products.iterator(); iter.hasNext();) {
ProductBase pb = iter.next();
System.out.println(pb.getPkID());
}
} catch (JAXBException ex) { …Run Code Online (Sandbox Code Playgroud)