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