Примечание: этот проект использует JAXB, который устарел в Java 9. Вам нужно иметь Java 8 в вашем JAVA_HOME вместо Java 9. Файл POM настроен так, чтобы все зависимости работали нормально.Я смог построить программу с Maven.Я просто проверяю, что функции работают нормально.
Я работаю над обновлением этого проекта до более новой версии scribejava и async-http-client.Вот мой репозиторий (я работаю над этим): https://github.com/khoanguyen0791/tradeking
Я отследил ошибку до метода unmarshal ().Входные данные существуют, но этот метод возвращает пустой объект.Может кто-нибудь объяснить, почему он возвращает пустой объект JAXB и как это исправить?Схема XML находится в моем хранилище.
static public <T> T getElement(InputSource source, String path, String root,
Class<T> clazz) throws Exception {
JAXBContext jaxbContext = JAXBContext.newInstance(path);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(source);
Element element = doc.getDocumentElement();
System.out.println(element == null);
if (root != null) {
NodeList nodeList = element.getChildNodes();
for (int j = 0; j < nodeList.getLength(); j++) {
System.out.println(j);
Node childNode = nodeList.item(j);
if (childNode.getNodeType() == Node.ELEMENT_NODE) {
if (childNode.getNodeName().equals(root)) {
element = (Element) childNode;
break;
}
}
}
}
NodeList nodes = element.getChildNodes();
for (int i = 0; i < nodes.getLength(); i++) {
System.out.println("" + nodes.item(i).getTextContent());
}
JAXBElement<T> t = jaxbUnmarshaller.unmarshal(element, clazz);
return t.getValue();
}