Переслать запрос на другой сервер и вернуть ответ с помощью Restlet - PullRequest
0 голосов
/ 11 марта 2020

У меня есть сервер, обрабатывающий запросы POST / GET / DELETE на конечной точке / api. Получив этот запрос, основываясь на ключе в запросе, я хочу переслать его на другой хост с той же конечной точкой / api и вернуть ответ исходному абоненту.

Код:

public Representation post_action (Representation rep) throws IOException {
        String key = getAttribute("key") ;
        AdminServer server = AdminServer.getInstance();
        if(server.getMyHostId()!=API.getServerNumber(key)){
             ClientResource client = new ClientResource("http://api_server_"+API.getServerNumber(key)+"/api");
                try {
                    Representation ret=client.post(rep);
                    client.release();
                    return ret;
                }catch (Exception e){
                    System.out.println("Unable to perform action");
                    client.release();
                }
            }

//... code for further processing of the request
}

Однако, когда я отправляю запрос, я вижу это в журнале

The protocol used by this request is not declared in the list of client connectors. (HTTP/1.1). In case you are using an instance of the Component class, check its "clients" property.
Unable to perform action

Нужно ли для этого использовать роутер? Немного неясно смотреть на код, приведенный здесь. https://restlet.talend.com/documentation/tutorials/2.4/uris

...