2012-04-10 2 views
1

Я использую RESTlet framework.Restlet Framework. Сериализация. Не понимаю, как отправлять и получать объекты

Я не понимаю, как сервер может принимать объект, отправленный клиентом. Например. У меня есть такой интерфейс на стороне клиента:

public interface AuthorizationResource { 
    @Post 
    public void login(Authentication auth); 
} 

Затем я отправить на сервер объект класса Authentication:

Authentication auth = new Authentication ("login", "password"); 

resource.login(auth); 

Класс аутентификации (Оба класса также доступны на сервере и на клиенте):

public class Authentication implements Serializable{ 

    private static final long serialVersionUID = 1L; 

    public String login; 
    public String password; 

    public Authentication() {} 

    public Authentication(String login, String password) { 
     super(); 
     this.login = login; 
     this.password = password; 
    } 

    public String getLogin() { 
     return login; 
    } 

    public String getPassword() { 
     return password; 
    } 

    public void setLogin(String login) { 
     this.login = login; 

    } 

    public void setPassword(String password) { 
     this.password = password; 
    } 
} 

Затем на стороне сервера, я хочу, чтобы получить объект класса Authentication:

public class AuthenticationServerResource extends ServerResource { 

    Authentication auth = new Authentication("defaultLogin", "defaultPassword"); 

    @Post 
    public void login (Authentication auth) { 
     this.auth = auth; 
       System.out.println(auth.getLogin()); 
    } 
} 

но ничего не происходит. Консоль ничего не выводит.

Мои вопросы, который является лучшим способом сериализации объекта? Правильно ли я прав?

+0

Предлагаю вам посмотреть «Представительство» в рестле, чтобы посмотреть, как их обойти. Совет. Вы вызываете ресурс сервера через «ClientResource» или «clientDispatcher», и вы не вызываете метод 'login' напрямую ... – PhD

ответ

0

Для этого вам необходимо использовать ClientResource. это должно быть примерно следующим образом:

ClientResource cr = new ClientResource(PATH_TO_URL); 
AuthorizationResource proxy = cr.wrap(AuthorizationResource.class) 
proxy.login(auth); 
Смежные вопросы