0

このチュートリアルに従って、 CRUDRESTfulWebサービスを正常に構築しました。しかし、私はそれを拡張することはできません。具体的には、Webブラウザからのパラメータである「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.3TodoResourceまたは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;
}

私のgateway()の通過の試み-

// 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;
}

誰かが私の方法をこの例に組み込んで無視しないようにする方法について頭を上げることができますか?

ありがとうございました。

4

1 に答える 1

0

使用しているブラウザーによっては、一部のブラウザーは TEXT_XML よりも APPLICATION_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;
}
于 2012-05-04T06:49:20.087 に答える