app-engine の GAE JDO データベースからすべての顧客のリストを返す asyncallback を作成しようとしています。うまく機能するログインクラスを作成しましたが、文字列のみを返します。今、リストを取得しようとしていますが、次のエラーがあります。
18:05:39.219 [ERROR] [prototipov8] subtype
com.google.gwt.resources.client.impl.ExternalTextResourcePrototype.ETRCallback is not default
instantiable (it must have a zero-argument constructor or no constructors at all) and has no
custom serializer. (reached via
com.google.gwt.user.client.rpc.AsyncCallback<java.util.List<pt.sites.shared.model.Customer>>)
と
[ERROR] [prototipov8] - subtype com.google.gwt.user.client.rpc.AsyncCallback<T>
is not instantiable
完全なエラー:
17:54:07.268 [ERROR] [prototipov8] Unable to load module entry point class pt.info2000.sites.client.old.Main (see associated exception for details)
java.lang.RuntimeException: Deferred binding failed for 'pt.info2000.sites.client.old.TableService' (did you forget to inherit a required module?)
at com.google.gwt.dev.shell.GWTBridgeImpl.create(GWTBridgeImpl.java:53)
at com.google.gwt.core.client.GWT.create(GWT.java:97)
at pt.info2000.sites.client.old.Main.<clinit>(Main.java:30)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at com.google.gwt.dev.shell.ModuleSpace.loadClassFromSourceName(ModuleSpace.java:654)
at com.google.gwt.dev.shell.ModuleSpace.onLoad(ModuleSpace.java:363)
at com.google.gwt.dev.shell.OophmSessionHandler.loadModule(OophmSessionHandler.java:200)
at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:525)
at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:363)
at java.lang.Thread.run(Unknown Source)
Caused by: com.google.gwt.core.ext.UnableToCompleteException: (see previous log entries)
at com.google.gwt.dev.shell.ModuleSpace.rebind(ModuleSpace.java:595)
at com.google.gwt.dev.shell.ModuleSpace.rebindAndCreate(ModuleSpace.java:455)
at com.google.gwt.dev.shell.GWTBridgeImpl.create(GWTBridgeImpl.java:49)
at com.google.gwt.core.client.GWT.create(GWT.java:97)
at pt.info2000.sites.client.old.Main.<clinit>(Main.java:30)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at com.google.gwt.dev.shell.ModuleSpace.loadClassFromSourceName(ModuleSpace.java:654)
at com.google.gwt.dev.shell.ModuleSpace.onLoad(ModuleSpace.java:363)
at com.google.gwt.dev.shell.OophmSessionHandler.loadModule(OophmSessionHandler.java:200)
at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:525)
at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:363)
at java.lang.Thread.run(Unknown Source)
呼び出し
public static final TableServiceAsync table = GWT.create(TableService.class);
テーブルサービス
@RemoteServiceRelativePath("getObjects")
public interface TableService extends RemoteService {
List<Customer> getObjects(AsyncCallback<List<Customer>> callback);
}
TableServiceAsync
public interface TableServiceAsync {
void getObjects(AsyncCallback<List<Customer>> callback,
AsyncCallback<List<Customer>> asyncCallback);
}
Costumer.class a JDO in gae
@PersistenceCapable
public class Customer extends User implement Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
@Persistent
private Date birthDate;
@Persistent
private int nib;
@Persistent
public Set<Key> companies;
@Persistent
public Set<Key> sugestions;
@Persistent
public Set<Key> documents;
/**
* @param code
* @param name
* @param description
* @param creationDate
* @param modificationDate
* @param creator
* @param lastModifier
* @param username
* @param password
* @param avatar
* @param activo
* @param cookie
* @param loginIP
* @param roles
* @param contacts
*/
public Customer(int code, String name, String description,
Date creationDate, Date modificationDate, Key creator,
Key lastModifier, String username, String password, Blob avatar,
boolean activo, String cookie, String loginIP, Set<Key> roles,
Set<Key> contacts) {
super(code, name, description, creationDate, modificationDate, creator,
lastModifier, username, password, avatar, activo, cookie, loginIP,
roles, contacts);
}
public Customer() {
}
すでに解決策を見つけようとしましたが、うまくいきませんでした。このエラーに遭遇した人はいますか? 提案や解決策はありますか?これをお読みいただきありがとうございます。役立つコードがあれば質問してください。
Edit1:パラメーターのないデフォルトのコンストラクターがあり、クラスはシリアル化可能を実装しており、シリアル化できます。このコードは Customer クラスで機能します。
Serializable c = new Customer();
Edit2: 要求されたコードと完全なエラーを追加しました。リストをハッシュセットに渡そうとしましたが、エラーは引き続き発生します。他の解決策は見つかりませんでした。