Вот моя функция, чтобы прочитать Model (In Apache Jena) от HTTPResponse данные телаmodel.read (inputStream, baseIRI, mimeType) throws java.lang.Exception: com.hp.hpl.jena.shared.NoReaderForLangException: application/ld + json
1)public static Model accessModelFromResponse(HttpResponse response) throws Exception {
2) Header contentType = response.getFirstHeader("Content-Type");
3) String mimeType = contentType.getValue();
4) String data = "";
5) if(mimeType.equals("application/ld+json"))
6) {
7) BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "UTF-8"));
8) String json;
9) while ((json = reader.readLine()) != null) {
10) data += json;
11) }
12) }
13) else if(mimeType.equals("application/json"))
14) {
15) data = (String) Services.addContextToJson(response);
16) mimeType = "application/ld+json";
17) }
18) else
19) {
20) throw new Exception("Data is not json/jsonld type");
21) }
22) InputStream in = new ByteArrayInputStream(data.getBytes(StandardCharsets.UTF_8));
23) Model model = ModelFactory.createDefaultModel();
24) try {
25) model.read(in, "http://myweb.com/", mimeType);
26) } catch (Exception ex) {
27) throw ex;
28) }
29) return model;
30) }
Everthing работал хорошо, когда я использовал Jena 3.1.0 версии JDK 8.
Но позже для поддержки jdk 7 меняю версию Jena на 2.13.0, и все стало хуже.
Это метать java.lang.Exception: com.hp.hpl.jena.shared.NoReaderForLangException: ошибка приложения/ld + json, которая возникает из строки 27.
Я думаю, что Jena 2.13.0 не поддерживает приложение/ld + json Язык.
Я нашел, если я установил третий параметр model.read(), который является mimeType в приведенном выше коде, чтобы «JSONLD» работал нормально. Но все же у меня вопрос, почему application/ld + json не работает, пока он отлично работает в Jena 3.1.0? Поддерживается ли это только в последующих выпусках?