smartgwt 2.2を使用しているときにすべて正常に動作しているときにsmartgwtに問題が発生しましたが、smartgwt 4.0b(ナイトビルド)を使用しているときにエラーが発生しました:
00:00:48,253 [ERROR] Uncaught exception escaped
com.google.gwt.core.client.JavaScriptException: (null) @com.smartgwt.client.widgets.tree.Tree::create()([]): null at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:249) at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:136) at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:571) at com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:279) at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java:91) at com.smartgwt.client.widgets.tree.Tree.create(Tree.java) at com.smartgwt.client.core.BaseClass.getOrCreateJsObj(BaseClass.java:120) at com.smartgwt.client.widgets.tree.TreeGrid.setData(TreeGrid.java:2393) at pl.fizzycomp.departments.gwt.client.DepartmentsMainView.setModelData(DepartmentsMainView.java:175) at com.test.departments.gwt.client.DepartmentsMainPresenter.setDepartments(DepartmentsMainPresenter.java:208) at com.test.gwt.client.DepartmentsApp$2.onSuccess(DepartmentsApp.java:80) at com.test.gwt.client.DepartmentsApp$2.onSuccess(DepartmentsApp.java:1)
何が悪いのかわかりません。これはDepartmentsMainViewのコードです。
tree = new Tree();
tree.setModelType(TreeModelType.PARENT);
tree.setNameProperty(DepartmentTreeNode.NAME_FIELD);
tree.setParentIdField(DepartmentTreeNode.PARENT_ID_FIELD);
tree.setIdField(DepartmentTreeNode.ID_FIELD);
tree.setData(nodes.toArray(new DepartmentTreeNode[nodes.size()]));
grid.setData(tree);
と私のDepartmentTreeNode:
public class DepartmentTreeNode extends TreeNode implements IDepartmentTreeNode {
public static final String ID_FIELD = "idField";
public static final String NAME_FIELD = "nameField";
public static final String CODE_FIELD = "codeField";
public static final String DESCRIPTION_FIELD = "descriptionField";
public static final String PARENT_ID_FIELD = "parentId";
public static final String VERSION_FIELD = "versionField";
public DepartmentTreeNode(DepartmentDto dto) {
setTitle(dto.getName());
setAttribute(ID_FIELD, dto.getId());
setAttribute(PARENT_ID_FIELD, dto.getParentId());
setDepartmentName(dto.getName());
setAttribute(CODE_FIELD, dto.getCode());
setAttribute(DESCRIPTION_FIELD, dto.getDescription());
setAttribute(VERSION_FIELD, dto.getVersion());
}
だから、私はsysoutによってオブジェクトDepartmentTreeNodeをチェックしているので、すべてがうまくいくように見えます。では、何が問題なのですか?
スマートGWTコンソールResoultで、私は情報しか得られませんでした:
16:03:28.801:INFO:Log:initialized
16:03:28.848:WARN:Log:NOTE: Firebug is enabled. Firebug greatly slows the performance of applications that make heavy use of JavaScript. Isomorphic highly recommends Firebug for troubleshooting, but Firebug and other development tools should be disabled when assessing the real-world performance of SmartClient applications.
16:03:31.717:WARN:Log:New Class ID: 'DataView' collides with ID of existing object with value 'function DataView() {
[native code]
}'. Existing object will be replaced.
This conflict would be avoided by disabling ISC Simple Names mode. See documentation for further information.
16:03:32.782:INFO:Log:isc.Page is loaded
また、プロジェクトのmvn clean installもクリーンアップしますが、ナイトリービルドでは問題ないと思います。smartgwt2.5を使用している場合、このエラーが発生するためです:/