当我访问我的网址http://localhost:8081/projectName/pathh/param以显示我创建的JSON对象时
"Employee": [{
"id": "param"
}]
这是我在Java中的代码。我使用Eclipse + Tom Cat Server。
@Path("/pathh")
@GET
@Path("{parameter}")
public Response getJSONObj(@PathParam("parameter") String parameter) {
JSONObject jsonObj = new JSONObject();
JSONArray jsonarray = new JSONArray();
jsonObj.put("id", parameter);
jsonarray.put(jsonObj);
System.out.println(jsonarray);
JSONObject jsonMain = new JSONObject();
jsonMain.put("Employee", jsonarray);
System.out.println(jsonMain.toString());
System.out.println(Response.status(200).entity(jsonMain).build());
return Response.status(200).entity(jsonMain).build();
}
我收到了这个错误:
HTTP状态500 - java.lang.IllegalArgumentException:错误的数量 参数
输入例外报告
message java.lang.IllegalArgumentException:参数数量错误
description服务器遇到阻止它的内部错误 完成此请求。
答案 0 :(得分:3)
package com.tests;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.core.Response;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
@Path("/path/{parameter}")
public class Test1 {
@GET
public Response getJSONObj(@PathParam("parameter") String parameter) {
JsonObject jsonObj = new JsonObject();
JsonArray jsonarray = new JsonArray();
jsonObj.addProperty("id", parameter);
jsonarray.add(jsonObj);
System.out.println(jsonarray);
JsonObject jsonMain = new JsonObject();
jsonMain.add("Employee", jsonarray);
System.out.println(jsonMain.toString());
System.out.println(Response.status(200).entity(jsonMain).build());
return Response.status(200).entity(jsonMain.toString()).build();
}
}
我使用Jersey作为Jax-RS API实现。可以在此处的教程中找到针对运动衫的配置。 jersey-server和jersey-servlet作为依赖项包含在内,web.xml有一个用于jersey servlet映射的条目。
答案 1 :(得分:0)
如果您可以调试它并找到它失败的行,或者它是否从未进入该方法并且您的应用程序接线/注释出现问题,这将有所帮助。
那就是说,我怀疑如果你删除或注释掉这行
System.out.println(Response.status(200).entity(jsonMain).build());
它会起作用。