我正在开发一个应用程序GWT,它可以搜索不同服务器上的文件.我在名为Search的类中的服务器包中有我的搜索代码.为了帮助搜索找到服务器,我将服务器位置放在名为Login的类中,该类位于共享包中.登录包含身份验证对象,用于存储单个服务器的信息.
调用Search的代码如下:
SearchInterfaceAsync search = GWT.create(SearchInterface.class);
AsyncCallback<Void> callback = new AsyncCallback<Void>() {
@Override
public void onFailure(Throwable caught) {
System.out.println("Error: " + caught.getMessage());
}
@Override
public void onSuccess (Void results) {
System.out.println("Success!");
}
};
search.initialize(serverName, login, callback);
search.searchServers(search, variousSearchParameters, callback);
Run Code Online (Sandbox Code Playgroud)
当我运行程序并尝试搜索时,程序打印Error: could not get type signature for class [Lcom.example.test.shared.Authentication;.
身份验证的代码如下:
public class Authentication implements Serializable {
private static final long serialVersionUID = 5326256122438445301L;
private String server;
private String userName;
private String password;
public Authentication(String serverName){
server = serverName;
}
public Authentication(String serverName, String user, String pass){
server = serverName;
userName = user;
password = pass;
}
public String getServer(){
return server;
}
public String getUserName(){
return userName;
}
public String getPassword() {
return password;
}
}
Run Code Online (Sandbox Code Playgroud)
我试过更改类型声明,添加序列化,切换到IsSerializible,没有任何作用!
Col*_*rth 12
我试过更改类型声明,添加序列化,切换到IsSerializible,没有任何作用!
您错过了一个:您必须具有默认(零参数)构造函数,否则无法创建新实例.反序列化过程创建一个对象,然后分配字段.
我相信你可以使这个构造函数受到保护,这样开发人员就不会意外地使用它.
如果它有助于其他人,这些是我最近遇到的这个错误的原因.从客户端向服务器发送对象:
public MyObject() {}Object(对象无法序列化)Serializable界面<?>导致了问题).GWT中的这些错误可以简单地显示为"500服务器错误",这很难调试.
希望节省一些拉毛.
| 归档时间: |
|
| 查看次数: |
6817 次 |
| 最近记录: |