Tomcat を j2ee サーバーとして使用する jsp ベースの Web アプリケーションを使用しています。セマンティック検索を実装するために必要な手順を教えてください。
以下のコードを追加しました。
public String queryOntology(String val) throws OWLOntologyCreationException {
OWLOntologyManager manager = OWLManager.createOWLOntologyManager();
OWLDataFactory dataFactory = manager.getOWLDataFactory();
File ontologyFile = new File("D:\\onto.owl");
OWLOntology psychiatricOntology = manager.loadOntologyFromOntologyDocument(ontologyFile);
//OWLReasoner rStructral = new StructuralReasonerFactory().createReasoner(psychiatricOntology);
OWLReasoner rHermit = new Reasoner.ReasonerFactory().createReasoner(psychiatricOntology);
try {
QueryEngine queryEng = QueryEngine.create(manager, rHermit);
Query query = Query.create("SELECT ?c WHERE { Class(?c) }");
QueryResult result = queryEng.execute(query);
return result.toString();
} catch (QueryParserException ex) {
//return ex.getMessage();
} catch (QueryEngineException ex) {
ex.getMessage();
} finally {
rHermit.dispose();
//rStructral.dispose();
}
return null;
}
上記のコード スニペットは、実行されたクエリの文字列値を返すメソッドを示しており、正しく返されています。ただし、Java サーブレット内で値を取得しようとすると、エラーが発生します。
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//processRequest(request, response);
String val = request.getParameter("query");
PrintWriter out = response.getWriter();
getInfo gi = new getInfo();
request.getRequestDispatcher("header.jsp").include(request, response);
out.print("<div id=content>");
out.print(val);
try {
//gi.createIndex();
//List<String> str = gi.createIndexSearcher(val);
//out.print(str);
out.print(gi.queryOntology(val));
} catch (OWLOntologyCreationException ex) {
Logger.getLogger(Search.class.getName()).log(Level.SEVERE, null, ex);
}
out.print("</div>");
request.getRequestDispatcher("footer.jsp").include(request, response);
}
上記のコードはサーブレットで使用されました。どうすればこれを解決できますか? 前もって感謝します
これは、表示されるエラー画面のスクリーンショットです。http://tinypic.com/r/2cnxj87/8