我正在尝试使用Jersey使用@PathParam,但它总是将其视为null。
这是方法:
网址为http://localhost:8080/GiftRegistryAPI/api/v2/inventory/david
,/v2/inventory
为班级
package com.omar.rest.inventory;
import javax.websocket.server.PathParam;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Request;
import javax.ws.rs.core.Response;
import org.codehaus.jettison.json.JSONArray;
import com.omar.rest.util.*;
@Path("/v2/inventory")
public class V2_Inventory {
@GET
@Produces(MediaType.APPLICATION_JSON)
public Response returnHostRegistries(@QueryParam("hostId") int hostId) throws Exception {
String returnString = null;
JSONArray jsonArray = new JSONArray();
try {
// A host ID of 0 indicates a null parameter, there will never be a host with an ID of 0
if (hostId == 0) {
return Response.status(400).entity("Error: please provide a valid host ID for this search").build();
}
Schema dao = new Schema();
jsonArray = dao.qryReturnHostRegistries(hostId);
returnString = jsonArray.toString();
}
catch (Exception e) {
e.printStackTrace();
return Response.status(500).entity("Server was not able to process your request").build();
}
System.out.println(returnString);
return Response.ok(returnString).build();
}
@Path("/{firstName}")
@GET
@Produces(MediaType.APPLICATION_JSON)
public Response returnSearchedRegistries(@PathParam("firstName") String name) throws Exception{
String returnString = null;
JSONArray jsonArray = new JSONArray();
System.out.println("Name: " +name);
try {
Schema dao = new Schema();
jsonArray = dao.qryReturnHostRegistries(name);
returnString = jsonArray.toString();
}
catch (Exception e) {
e.printStackTrace();
return Response.status(500).entity("Server was not able to process your request").build();
}
System.out.println(returnString);
return Response.ok(returnString).build();
}
}
调试后的name
参数始终为空,我无法找到任何方法让它识别我输入了任何内容。
任何想法可能出错?
答案 0 :(得分:9)
这是我的导入声明
import javax.websocket.server.PathParam;
应该是
import javax.ws.rs.PathParam;
答案 1 :(得分:0)
在此错误中,大多数情况下问题是错误的导入。只要确保您拥有import javax.ws.rs.PathParam;