Java @PathParam始终为null

Oma*_*him 2 java rest jersey path-parameter

我正在尝试使用Jersey使用@PathParam,但它总是将其视为null.

这里的方法:URL是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();
}
Run Code Online (Sandbox Code Playgroud)

}

name调试时的参数始终为null,我无法找到任何方法让它识别出我输入的内容.

什么想法可能会出错?

Oma*_*him 10

这是我的进口声明

import javax.websocket.server.PathParam;
Run Code Online (Sandbox Code Playgroud)

本来应该

import javax.ws.rs.PathParam;
Run Code Online (Sandbox Code Playgroud)