Непредвиденная проблема элемента при демонтаже с использованием JaxB - PullRequest
0 голосов
/ 06 февраля 2020

Итак, я пытаюсь разобрать мой xml ответ на объект в моей программе. Однако я постоянно получаю

unexpected element (uri:"urn:ebay:apis:eBLBaseComponents", local:"GetItemResponse"). Expected elements are <{urn:ebay:apis:eBLBaseComponents}urn:ebay:apis:eBLBaseComponents>

Мое текущее решение, которое я пытался реализовать, использует класс package-info, который выглядит так:

@javax.xml.bind.annotation.XmlSchema(namespace = "urn:ebay:apis:eBLBaseComponents")
package com.ebay.queens.responses.getitemresponse;
import javax.xml.bind.annotation.XmlSchema;

Я пытался аннотировать мой класс ответа с помощью

@XmlRootElement(name="urn:ebay:apis:eBLBaseComponents")

Мой XML выглядит следующим образом (для краткости это сокращено)

<?xml version="1.0" encoding="UTF-8"?>
<GetItemResponse xmlns="urn:ebay:apis:eBLBaseComponents">
    <Timestamp>2020-02-06T10:24:02.549Z</Timestamp>
    <Ack>Success</Ack>
    <Version>1125</Version>
    <Build>E1125_INTL_API_19070421_R1</Build>
</GetItemResponse>

Наконец мой код сортировки выглядит следующим образом

    String result = httpClass.genericXMLSendPOST("https://api.ebay.com/ws/api.dll", getItemRequest, "getItem");
    System.out.println("Result: " + result);
    try {
        JAXBContext jaxbContext = JAXBContext.newInstance(GetItemResponse.class);
        Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
        getItemResponse = (GetItemResponse) unmarshaller.unmarshal(new StringReader(result));
        System.out.println("---------------------------------");
    } catch (JAXBException e) {
        LOGGER.error("Failed to deserialize XML.", e);
    }

I Я пробовал и исследовал много подобных проблем с переполнением стека, но ни одна из них не подходит для моей ситуации, поэтому, если у кого-то есть какие-либо идеи или я смогу помочь мне решить эту проблему, это было бы здорово!

...