我用jersey写了一个jax-rs服务,该类如下,
我想像这样定义以下网址,
通过传递参数获取报告
http://localhost:8085/DiginReport/rs/Reports/getreport/ {TEST1:值,TEST2:值}
启动引擎:
@Path("Reports")
public class ReportService {
@GET
@Path("/getreport}/{parameters}")
@Produces(MediaType.TEXT_PLAIN)
public Response getReport(@PathParam("reportName") String reportName,@PathParam("parameters") String parameters) throws KettleXMLException, KettleMissingPluginsException, JSONException, UnknownParamException {
JSONArray jsonarr;
return Response.status(200).entity("ok").build();
}
@GET
@Path("{start}")
@Produces(MediaType.TEXT_PLAIN)
public Response startEngine(@PathParam("start") String command) {
return Response.status(200).entity("ok").build();
}
}
当我在网址中输入此内容时,它表示资源不可用, http://localhost:8085/DiginReport/rs/Reports/start
答案 0 :(得分:0)
尝试以下代码。
我还会考虑以下事项:
将Json数据传递为application/json
而不是字符串作为路径参数(请注意,您需要转义。
使用除GET
之外的其他方法来启动引擎(例如POST
),因为get应仅用于检索数据。
使用网址中的资源,而不是start
或getreports
。
@Path("Reports")
public class ReportService {
@GET
@Path("/getreport/{parameters}")
@Produces(MediaType.TEXT_PLAIN)
public Response getReport(@PathParam("parameters") String parameters) throws KettleXMLException, KettleMissingPluginsException, JSONException, UnknownParamException {
JSONArray jsonarr;
return Response.status(200).entity("ok").build();
}
@GET
@Path("/start")
@Produces(MediaType.TEXT_PLAIN)
public Response startEngine() {
return Response.status(200).entity("ok").build();
}
}