2015-01-09 3 views
2

Я пытаюсь использовать @PathParam, используя Джерси, но он всегда считает его нулевым.Java @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(); 
} 

}

Параметр name когда отлаживается всегда пустой, и я не могу найти способ в все, чтобы узнать, что я вошел.

Любые идеи, что может быть не так?

+0

вы можете поставить все класс? его невозможно угадать, когда корневого адреса нет –

+0

Только когда я скопировал его в сообщение выше, я заметил неправильный оператор импорта. Изменен оператор импорта, и он работает –

ответ

8

Это был мой импорт заявление

import javax.websocket.server.PathParam; 

должен был

import javax.ws.rs.PathParam; 
+0

Вы только что спасли мой день, спасибо вам большое! –