Доброе утро, парень,
У меня много проблем с английским (: D) и GWT.
В GWT абстрактный класс может быть сериализуемым?
Это мой код для проекта ElectionOnline. Большое спасибо за твою помощь.
package elezione.eco.shared;
public abstract class User
{
protected String username;
protected String password;
protected String email;
protected String name;
protected String surname;
protected String sex;
protected String birthDate;
protected String birthPlace;
protected String address;
public User(){}
public String getName() {
return name;
}
public String getSurname() {
return surname;
}
public String getSex() {
return sex;
}
public String getBirthDate() {
return birthDate;
}
public String getBirthPlace() {
return birthPlace;
}
public String getAddress() {
return address;
}
public String getUsername(){
return username;
}
public String getPassword(){
return password;
}
public String getEmail(){
return email;
}
}package elezione.eco.server;
import elezione.eco.client.ECOService;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
import elezione.eco.shared.*;
import java.io.File;
import java.util.ArrayList;
import org.mapdb.DB;
import org.mapdb.DBMaker;
/**
* The server-side implementation of the RPC service.
*/
public class ECOServiceImpl extends RemoteServiceServlet implements ECOService {
private static final long serialVersionUID = 1L;
LoginServiceImpl loginService;
public ECOServiceImpl() {
DB db = DBMaker.newFileDB( new File( "ECO-DB.txt" ) ).closeOnJvmShutdown().make();
loginService = new LoginServiceImpl( db );
}
public void restartDb() {
loginService.clear();
loginService.addAdmin();
}
public void populate() {
try {
addUser( "Sergio" , "m" , "[email protected]" , null , null , null , null , null , null );
} catch ( DuplicatedUserNameException e ) {
e.printStackTrace();
}
}
public User addUser( String username, String password, String email, String name, String surname, String sex,
String birthDate, String birthPlace, String address ) throws DuplicatedUserNameException {
return loginService.addUser( username , password , email , name , surname , sex , birthDate , birthPlace ,
address );
}
public User login( String userName, String password ) throws WrongPasswordException, UserNotFoundException {
return loginService.login( userName , password );
}
public ArrayList<User> getRegistered() {
return loginService.getRegistered();
}
public ArrayList<User> getAllUsers() {
return loginService.getAllUsers();
}
}Хорошо, я не понимаю, потому что ошибка компиляции gwt с сериализацией. Аннотация класса может быть сериализуемой? я должен реализовать абстрактный шаблон. Спасибо
Возможный дубликат этого .. stackoverflow.com/questions/4452941/…




GWT (точнее, GWT-RPC) поддерживает сериализацию класса IsSerializable, который расширяет абстрактный сериализуемый класс.
Если вы ищете класс DTO без конкретной реализации на стороне клиента, вы ищете Proxy или RequestFactory.
http://www.gwtproject.org/doc/latest/DevGuideRequestFactory.html
Вы не можете создать экземпляр абстрактного класса. вы должны предоставить дочерний класс для абстрактного класса, чтобы служба GWT могла создать экземпляр и сериализовать его