Java – GWT – unable to get type signature of class
I am developing an application GWT, which can search files on different servers I have my search code in the server package in the class named search To help the search find the server, I put the server location in a class called login, which is located in a shared package Login contains authentication objects that store information about a single server
The code for calling search is as follows:
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);
When I run the program and try to search, the program prints an error: unable to get the type signature of the class [LCOM. Example. Test. Shared. Authentication
The authentication code is as follows:
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;
}
}
I've tried to change the type declaration, add serialization, and switch to isserializable. It doesn't work!
Solution
You missed one: you must have a default (zero argument) constructor or you cannot create a new instance The deserialization process creates an object and then assigns fields
I believe you can protect this constructor so that developers won't accidentally use it
