2011-06-28 69 views
0

我使用Google GWT和RPC。在客户端是类SplitDatenhalter。这工作正常:Google GWT RPC Vector

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)得到一个错误。我哪里做错了?

回答

0

您可以在客户端使用矢量并把它传递FTO服务器端(see reference

也许你SplitDatenhalter类是不可序列化。有什么问题?