Java 在REST web服务中从jena返回结果集时使用的媒体类型
我有这个代码,当我运行它时,它返回空的aJSON 只是JSON的结构 怎么了?我该怎么办 数据包 导入com.hp.hpl.jena.query.ResultSet 导入javax.ws.rs.core.Context 导入javax.ws.rs.core.UriInfo 导入javax.ws.rs.PathParam 导入javax.ws.rs.Consumes 导入javax.ws.rs.PUT 导入javax.ws.rs.Path 导入javax.ws.rs.GET 导入javax.ws.rs.products 导入javax.ws.rs.core.MediaType @路径/服务 公共类服务{Java 在REST web服务中从jena返回结果集时使用的媒体类型,java,web-services,jax-rs,sparql,jena,Java,Web Services,Jax Rs,Sparql,Jena,我有这个代码,当我运行它时,它返回空的aJSON 只是JSON的结构 怎么了?我该怎么办 数据包 导入com.hp.hpl.jena.query.ResultSet 导入javax.ws.rs.core.Context 导入javax.ws.rs.core.UriInfo 导入javax.ws.rs.PathParam 导入javax.ws.rs.Consumes 导入javax.ws.rs.PUT 导入javax.ws.rs.Path 导入javax.ws.rs.GET 导入javax.ws.
@Context
private UriInfo context;
public Servicio() { }
@GET
@Path("/{universidad}")
@Produces({ MediaType.APPLICATION_JSON})
public ResultSet getJson(@PathParam("universidad") String universidad) {
com.Data.Metodos metodo = new Metodos();
universidad = universidad.replace(' ', '+');
String URI = "http://dbpedia.org/sparql/University/country/?"+universidad+"/es/1/=json/";
String lista[];
String filtros[];
String Query = "";
lista = metodo.get_Cadenas(URI);
filtros = metodo.elementos(lista);
Query = metodo.Query(filtros);
return (metodo.outformat(Query, filtros[0], filtros[4]));
}
@PUT
@Consumes("application/json")
public void putJson(String content) {
}
}您的@products注释的值应该是您希望向客户提供的媒体类型
上面的示例中有application/json,因此我假设您希望将json返回给您的客户机。问题是json序列化程序不知道如何将ResultSet转换为json对象,除非您告诉它如何转换
您需要创建自定义MessageBodyWriter,以便将ResultSet对象序列化为json
请看一个在JAX-RS中创建和注册自定义MessageBodyWriter的示例。谢谢朋友,我会的review@Efren-没问题,很高兴我能帮忙。如果答案有帮助,请不要忘记向上投票并接受,欢迎使用StackOverflow。MIME类型为application/sparql results+json。ResultSetFormatter.outputAsJSON将写入此格式。