2014-10-14 4 views
0

Я смотрел на это в течение двух часов, но я не вижу, как batchid переменная может придумать, как «» (пустая строка, а не нулевой) в отладчике.@PathParam является Null

Я попытался удалить @ Produces/@ Использует аннотации, но не повезло.

Я использую POST командной строки Linux, которая выглядит следующим образом:

http POST http://localhost:8080/cr/feed/send-batch/550f9ef7-b586-4029-bf7d-4d0659a08707 

Может кто-то определить свою ошибку?

import javax.enterprise.context.RequestScoped; 
import javax.websocket.server.PathParam; 
import javax.ws.rs.*; 
import javax.ws.rs.core.MediaType; 
import javax.ws.rs.core.Response; 


@Path("/feed") 
@RequestScoped 
public class FeedHandler { 

    @POST 
    @Path("/send-batch/{batchid}") 
    @Produces(MediaType.APPLICATION_JSON) 
    @Consumes(MediaType.APPLICATION_JSON) 
    public Response sendBatch(@PathParam("batchid") String batchid) { 

    } 
+0

Можете ли вы опубликовать также импортированные теги? Возможно, вы используете не проверенные аннотации. STH. например: import javax.ws.rs.Path; import javax.ws.rs.PathParam; И я не думаю, что вам нужно первое '/' на пути :-) – user3280180

+0

Импортные заявления добавлены. На какой «/» вы ссылаетесь? Класс или аннотация метода. – EdgeCase

+0

Требуется ли методу POST? Если вам просто нужен PathParam, вы также можете попробовать GET. – user3280180

ответ

2

Проблема заключается в вашем импорте.

Вы используете

импорта javax.websocket.server.PathParam;

но вы должны использовать

импорта javax.ws.rs.PathParam;