我正在使用 Jena API 从 Allegrograph Server 获取 RDF 数据。我已经使用 Jersey jar 编写了一个 REST Web 服务来获取这些数据。
我的 web 服务的 java 代码如下所示:
@GET
@Path("/JENA")
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
public String getData() throws RepositoryException {
AGGraphMaker maker = new AGGraphMaker(conn);
AGGraph graph = maker.getGraph();
AGModel model = new AGModel(graph);
AGQuery agQuery = AGQueryFactory.create(query);
QueryExecution qe = AGQueryExecutionFactory.create(agQuery, model);
String result = null;
ByteArrayOutputStream byteArrayOutputStream = null;
try {
ResultSet rs = qe.execSelect();
While(rs.hasNext()){
byteArrayOutputStream = new ByteArrayOutputStream();
if("JSON".equalsIgnoreCase(outputFormat)){
ResultSetFormatter.outputAsJSON(byteArrayOutputStream, rs);
result = byteArrayOutputStream.toString();
System.out.println("Result is "+result);
} else if("XML".equalsIgnoreCase(outputFormat)){
ResultSetFormatter.outputAsXML(byteArrayOutputStream, rs);
result = byteArrayOutputStream.toString();
}else if("CSV".equalsIgnoreCase(outputFormat)){
ResultSetFormatter.outputAsCSV(byteArrayOutputStream, rs);
result = byteArrayOutputStream.toString();
}
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
当我在 Tomcat 服务器上部署此 Web 服务并在 Chrome 和 firefox 上使用 REST 客户端应用程序对其进行测试时,我没有得到 SPARQL 查询的结果。
但是相同的代码(webservice 代码和这个 main 方法代码绝对没有区别)如果我用一个普通的 java 类编写并运行它的 main 方法,我会得到 36 个结果。我不确定问题是什么。
请在这方面帮助我。