CRUD RESTful учебник

Я успешно создал веб-сервис CRUD RESTful в соответствии с этим руководство. Однако мне не повезло, что бы я ни расширялся. В частности, я пытаюсь вставить новый метод где-нибудь (в любом месте), который будет принимать «ID», который является параметром, поступающим из веб-браузера.

Например, я испробовал все мыслимые способы вставки этого метода:

public class Gateway{

    public static void gateway (String id) throws IOException{
            FileWriter out = new FileWriter("C:\\Atest.txt");
            out.write("Hello "+id);
            out.close();
            }
}

В класс 5.3 TodoResource или TodosResource.

Например, в TodoResource: Orginal-

// For the browser
@GET
@Produces(MediaType.TEXT_XML)
public Todo getTodoHTML() {
    Todo todo = TodoDao.instance.getModel().get(id);
    if(todo==null)
        throw new RuntimeException("Get: Todo with " + id +  " not found");
    return todo;
}

Моя попытка пройти через шлюз()-

// For the browser
@GET
@Produces(MediaType.TEXT_XML)
public Todo getTodoHTML() {
    Todo todo = TodoDao.instance.getModel().get(id);
    if(todo==null)
        throw new RuntimeException("Get: Todo with " + id +  " not found");
Bridge.gateway(id)  //Here I tried to pass id   
return todo;
}

Может ли кто-нибудь подсказать, как включить мой метод в этот пример, чтобы он не игнорировал его?

Спасибо.


person Chris    schedule 03.05.2012    source источник


Ответы (1)


В зависимости от того, какой браузер вы используете, некоторые браузеры предпочитают APPLICATION_XML TEXT_XML. Таким образом, вполне вероятно, что вместо того, к которому вы добавляете свой метод Bridge.gateway(id), вызывается следующий метод:

@GET
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public Todo getTodo() {
    Todo todo = TodoDao.instance.getModel().get(id);
    if(todo==null)
        throw new RuntimeException("Get: Todo with " + id +  " not found");
    return todo;
}
person Martin Matula    schedule 04.05.2012