У меня есть рабочий метод, который использует Джексона для публикации данных в формате JSON.
Я в основном скопировал этот метод, изменив ObjectMapper на XmlMapper. Я также изменил RequestProperty с application/json
на application/xml
private static void post_xml_to_url(Logger logger, Object infoToPost, URL url, String user, String psw) throws JsonProcessingException, MalformedURLException, IOException, NoSuchAlgorithmException, KeyManagementException {
logger.log(Level.INFO, "Posting Ticket..");
XmlMapper mapper = new XmlMapper(); //Chang back to use JSON
mapper.enable(SerializationFeature.INDENT_OUTPUT);
byte[] val = mapper.writeValueAsBytes(infoToPost);//Error is thrown here
System.out.println(mapper.writerWithDefaultPrettyPrinter().writeValueAsString(infoToPost));
HttpsURLConnection con = null;
try {
disableCertificateValidation();
con = (HttpsURLConnection) url.openConnection();
String encoding = Base64.getEncoder().encodeToString((user + ":" + psw).getBytes("UTF-8"));
con.setRequestProperty("Authorization", String.format("Basic %s", encoding));
con.setDoOutput(true);
con.setDoInput(true);
con.setRequestProperty("Content-Type", "application/xml; charset=UTF-8");
con.setRequestMethod("POST");
con.setRequestProperty("User-Agent", "Java client");
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
wr.write(val);
StringBuilder content;
try (BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()))) {
String line;
content = new StringBuilder();
while ((line = in.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
} finally {
con.disconnect();
}
}
Кажется, есть некоторые проблемы с зависимостями
Исключение в потоке "main" java.lang.NoSuchMethodError:com.fasterxml.jackson.dataformat.xml.ser.ToXmlGenerator.getOutputContext () Lcom / fasterxml / джексон / ядро / JSON / JsonWriteContext;в com.fasterxml.jackson.dataformat.xml.ser.ToXmlGenerator.close (ToXmlGenerator.java:951) в com.fasterxml.jackson.databind.ObjectMapper._configAndWriteValue (ObjectMapper.jack:3911) в com.fasterxml. .ObjectMapper.writeValueAsBytes (ObjectMapper.java:3244)
Мне сложно понять, какие JAR-файлы мне нужны для решения этой проблемы. Что мне не хватает?
Я приложил скриншот текущих файлов в моей библиотеке: