2012-04-10 1 views
1

Ich verwende RESTlet-Framework.Restlet-Framework. Serialisierung Ich verstehe nicht, wie senden und empfangen Objekt

Ich verstehe nicht, wie Server ein Objekt vom Client gesendet werden kann. Beispielsweise. Ich habe eine solche Schnittstelle auf der Client-Seite:

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

Dann habe ich das Objekt der Authentifizierungs Klasse Server senden:

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

resource.login(auth); 

der Authentifizierungs-Klasse (Beide Klassen sind auch auf dem Server und Client):

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

Dann auf der Server-Seite, ich habe die Aufgabe Authentifizierungsklasse erhalten möchten:

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()); 
    } 
} 

aber nichts passiert. Die Konsole gibt nichts aus.

Meine Fragen, was ist der beste Weg, um ein Objekt zu serialisieren? Ist mein Weg richtig?

+0

Ich schlage vor, Sie schauen 'Repräsentation' im Restlet nach, um zu sehen, wie man sie herumreicht. Tipp: Sie rufen eine Server-Ressource über eine 'ClientResource' oder einen 'clientDispatcher' auf und rufen die' login'-Methode nicht direkt auf ... – PhD

Antwort

0

Sie müssen ClientResource dafür verwenden. Es sollte so etwas wie das Folgende sein:

ClientResource cr = new ClientResource(PATH_TO_URL); 
AuthorizationResource proxy = cr.wrap(AuthorizationResource.class) 
proxy.login(auth);