0

当我使用 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);

和我的部门树节点:

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 ant 检查对象 DepartmentTreeNode,它很好。那么有什么问题呢?


在智能 gwt 控制台结果中,我只得到了信息:

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 我会收到此错误:/

4

1 回答 1

0

夜间构建错误确实属于 SmartGWT 论坛。这很可能是一个错误。

您应该确保的另一件事是您的项目没有旧的生成代码。可以肯定的是,删除您的 war 目录中所有旧的生成代码。

最后,使用 SmartGWT 控制台: http ://www.smartclient.com/smartgwt/javadoc/com/smartgwt/client/docs/Debugging.html - 它有时会使这些神秘错误更加清晰

于 2013-02-04T16:19:19.983 回答