다음은 Model (Apache Jena에서)을 읽는 함수입니다. 내가 JDK 8 예나 3.1.0 버전을 사용 할 때 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) }
모든게 괜찮 았는데.
하지만 나중에 jdk 7을 지원하기 위해 Jena 버전을 2.13.0으로 변경하고 모든 것이 최악입니다.
이것은 java.lang.Exception을 던지고 있습니다 : com.hp.hpl.jena.shared.NoReaderForLangException : 27 번 라인에서 발생하는 application/ld + json 오류.
Jena 2.13.0이 application/ld + json 언어를 지원하지 않는다고 생각합니다.
"JSONLD"위의 코드에서 mimeType 인 model.read()의 세 번째 매개 변수를 설정하면 발견됩니다.하지만 Jena에서 잘 작동하는 동안 application/ld + json이 작동하지 않는 이유는 여전히 있습니다. 3.1.0?이 기능은 이후 릴리스에서만 지원됩니까?