Google GWT RPC Vector - PullRequest
       10

Google GWT RPC Vector

0 голосов
/ 28 июня 2011

Я использую Google GWT и RPC. На стороне клиента находится класс SplitDatenhalter. Это работает хорошо:

Vector <SplitDatenhalter> vec = new Vector<SplitDatenhalter>();
vec.add(new SplitDatenhalter("a", "b", "c","D"));
vec.add(new SplitDatenhalter("ab", "bc", "dc","Dee"));

Как я могу отправить это на сервер?

Обновление

У меня на стороне клиента класс SplitDatenhalter. Смотри ниже,

public class SplitDatenhalter implements Serializable{

private static final long serialVersionUID = 1L;
String name ;
String vorname;
String nachname;
String email;


public SplitDatenhalter(String name, String vorname, String Nname, String Email) {      
    this.name = name;
    this.vorname = vorname;
    this.nachname = Nname; 
    this.email = Email;
} 

public String getName() {
    return name;
}
//others setter and getter Function

На стороне клиента есть MyService:

public interface MyService extends RemoteService  
{     
    public void  myVector(Vector<SplitDatenhalter> vec); 
}

Другой интерфейс:

public interface MyServiceAsync {
    public void myVector(Vector < SplitDatenhalter > vec,
                 AsyncCallback < Void > callback);
}

Это сторона сервера:

public void myVector(Vector < SplitDatenhalter > vec)
{
    // TODO Auto-generated method stub
    System.out.println("vector");
    for (int i = 0; i < vec.size(); i++) {
        this.name = vec.get(i).getName();
        this.name = vec.get(i).getVorname();
        this.name = vec.get(i).getNachname();
        this.name = vec.get(i).getEmail();
    }
}

Эта часть кода со стороны клиента:

Vector<SplitDatenhalter> vect = new Vector<SplitDatenhalter>(); // TODO Auto-generated method stub
MyServiceAsync svc = (MyServiceAsync) GWT.create(MyService.class);  
ServiceDefTarget endpoint = (ServiceDefTarget) svc;  
// endpoint.setServiceEntryPoint("/myService");  

// define a handler for what to do when the  service returns a result  
@SuppressWarnings("rawtypes")
AsyncCallback callback = new AsyncCallback()
{
    @Override
    public void onFailure(Throwable caught) {
        // TODO Auto-generated method stub
        System.out.println("Fehler");
    }

    //@Override
    public void onSuccess(Object result) {
        // TODO Auto-generated method stub  
        System.out.println(result.toString()); 
    }
}; 
this.vect.add(new SplitDatenhalter(this.name, Vname, Nname, Email)); //this a part from Function 

Мне нужна эта часть кода

public static MyServiceAsync getService()
{
    MyServiceAsync svc = (MyServiceAsync) GWT.create(MyService.class);
    ServiceDefTarget endpoint = (ServiceDefTarget) svc;
    endpoint.setServiceEntryPoint("/myService");
    return svc;
}

Последняя часть:

@ SuppressWarnings("unchecked")
public void vectorExe()
{
    System.out.println("vectorExe befor");
    getService().myVector(this.vect, callback);
}

После выполнения этой функции я получаю ошибку от onFailure(Throwable caught). Где я ошибся?

1 Ответ

0 голосов
/ 28 июня 2011

вы можете использовать вектор в клиенте и передавать его на сервер ( см. Ссылку )

Возможно, ваш класс SplitDatenhalter не является Сериализуемым. В чем проблема?

...