Hello everyone.

I am developing a restlet server that will receive petitions from an Android 
client.

Based on the Hello World application
http://www.restlet.org/documentation/2.0/firstSteps

and on the Object serialization tutorial
http://wiki.restlet.org/docs_2.0/13-restlet/21-restlet/318-restlet/303-restlet/version/11

I have some java classes:

******
******
Server Side
******
******

******
MyUser.java
******

package com.server.common;
import java.io.Serializable;

public class MyUser implements Serializable {
    private static final long serialVersionUID = 1L;
    private String username;
        public MyUser() {}
        public MyUser(String username) {
                super();
                this.username = username;
        }
        public String getUsername() {
                return username;
        }
        public void setUsername(String username) {
                this.username = username;
        }
}

******
UserResource.java
******

package com.server.common;
import org.restlet.resource.Get;
public interface UserResource {
        @Get
        public MyUser getUser();
}

******
UserServerResource.java
******

package com.server;
import org.restlet.resource.Get;
import org.restlet.resource.ServerResource;
import com.server.common.MyUser;
import com.server.common.UserResource;

public class UserServerResource extends ServerResource implements UserResource {
        @Get
        public MyUser getUser() {
                MyUser u = new MyUser("Nickname from server");
                System.out.println(u.getUsername()); //works
                return u;
        }
}

******
******
Client Side
******
******

******
the same UserResource.java and MyUser.java
******

******
MainActivity.java extract
******
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
                ClientResource cr = new ClientResource(
                                "http://MYSERVERIP:8080/FamilyWeb/username";);
                resource = cr.wrap(UserResource.class);
                
                try {
                        MyUser u = resource.getUser();
                        Log.w("success",u.toString());
                } catch (Exception e) {
                        e.printStackTrace();
                }


*****************************

If I change the getUser() method to return a String object and make the 
respective changes, my Android client gets the String, but if I run the code 
shown above, I get a NullPointerException.

What am I missing?

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

Reply via email to