Yes. Server-side resource is implement the AuthorizationResource interface. 
                        /******On the Server side******/
Intranet Application class:
--------
package kz.univer.intranet.server;

import org.restlet.Application;
import org.restlet.Restlet;
import org.restlet.routing.Router;

public class IntranetApplication extends Application {
        
        @Override
        public Restlet createInboundRoot() {
                Router router = new Router(getContext());
                router.attachDefault(AuthenticationServerResource.class);
                router.attach("/login", AuthenticationServerResource.class);
                return router;
        }
}

AuthenticationResource interface:
--------------
package kz.univer.intranet.common;

import org.restlet.resource.Post;
import kz.univer.intranet.common.Authentication;

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

AuthenticationServerResource class:
---------
package kz.univer.intranet.server;

import kz.univer.intranet.common.Authentication;
import kz.univer.intranet.common.AuthenticationResource;

import org.restlet.resource.ServerResource;
import org.restlet.resource.Post;

public class AuthenticationServerResource extends ServerResource implements
AuthenticationResource{
        Authentication auth = new Authentication("defaultLogin",
"defaultPassword"); 
    
    @Post 
    public void login (Authentication auth) { 
            this.auth = auth; 
            System.out.println(auth.getLogin()); 
    }   
        
        //private final static int SUCCESS_CODE = 1;
        //private final static int ERROR_CODE = -1;
}

Authentication class (implements Serializabe)
-----------
package kz.univer.intranet.common;

import java.io.Serializable;

public class Authentication implements Serializable {
        
        private static final long serialVersionUID = 1L;
        
        private String login;
        private 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;
        }
}

                  /********On the client side (client side is Android
app)********/

Authorization class (activity):
-------------
package kz.kaznu.intranet;

import org.restlet.resource.ClientResource;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.util.Log;
import android.widget.EditText;
import java.lang.String;
import android.widget.Button;


public class Authorization extends Activity
{
        private static abstract class MyOnClickListener implements
Button.OnClickListener, Runnable {
                public abstract void run();
        }
        
        public String login = "";
        public String password = "";
        private static final String TAG = "LoginPassword";
        AuthorizationResource resource;
        Authentication auth;
        
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        System.setProperty("java.net.preferIPv6Addresses", "false");
        super.onCreate(savedInstanceState);
        setContentView(R.layout.login);
        ClientResource cr = new
ClientResource("http://10.0.2.2:8888/login";);
        cr.setRequestEntityBuffering(true);
        
        resource = cr.wrap(AuthorizationResource.class);
        
        Button loginBtn = (Button) findViewById(R.id.btn_enter);
        Log.i(TAG, "onCreate()");

        loginBtn.setOnClickListener(new MyOnClickListener() {
                public void onClick(View v) {
                         
                         Log.i(TAG, "onclick()");
                     Thread thread = new Thread(this);
                     thread.start();
                }
                
                @Override
                public void run() {
                        try {
                                Log.i(TAG, "run()");
                                EditText loginView= 
(EditText)findViewById(R.id.edit_login);
                        EditText passwView = (EditText)
findViewById(R.id.edit_passw);
                        login = loginView.getText().toString().trim();
                        password = passwView.getText().toString().trim();
                        auth = new Authentication("default", "default");
                        auth.setLogin(login);
                        auth.setPassword(password);
                        
                        Log.i(TAG, "before login());
                        resource.login(auth);                   
                                Log.i(TAG, "after login()"); 
                                //Log.i(TAG, str);
                        } catch(Exception e) {                          
                        }
                }
        });
        
    }
}


 AuthorizationResource interface
---------------
package kz.kaznu.intranet;

import org.restlet.resource.Post;
import kz.kaznu.intranet.Authentication;

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

Authentication class (implements Serializable):
-------------------------
package kz.kaznu.intranet;

import java.io.Serializable;

public class Authentication implements Serializable {
        
        private static final long serialVersionUID = 1L;
        
        private String login;
        private 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;
        }
}

-------------------------------------
First i launch server side, then i launcing client app.
The log info(LogCat) gives the following messages:
 1) onclick()
 2) run()
 3) before login()
 4) BUT "AFTER LOGIN() " doesn't show

When i delete "implements Serializable" in the Authentication class on
client side, LogCat show "AFTER LOGIN()"

I don't understand. I modified your example on this page
http://wiki.restlet.org/docs_2.1/13-restlet/21-restlet/318-restlet/303-restlet.html
, but I can not send an object of Authentication class from client to server


--
View this message in context: 
http://restlet-discuss.1400322.n2.nabble.com/How-send-object-from-client-to-server-tp7451974p7452900.html
Sent from the Restlet Discuss mailing list archive at Nabble.com.

------------------------------------------------------
http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2946860

Reply via email to