java - NetBeans 插件更新后所有连接上的 ConnectionRequest 错误

标签 java codenameone

我更新了 NetBeans 的 CodenameOne 插件,从那时起,每个连接都会产生以下错误

java.lang.ClassCastException:java.lang.Boolean 无法转换为 java.util.Hashtable 在 com.codename1.impl.CodenameOneImplementation.getCookiesForURL(CodenameOneImplementation.java:3934) 在 com.codename1.io.ConnectionRequest.performOperation(ConnectionRequest.java:308) 在 com.codename1.io.NetworkManager$NetworkThread.run(NetworkManager.java:263) 在 com.codename1.impl.CodenameOneThread.run(CodenameOneThread.java:176)

推送通知注册的连接甚至会产生此错误。 有什么帮助吗?

最佳答案

出现这个问题是因为我在一些 ConnectionRequest 调用中存储、删除和恢复了“Cookies”存储对象。我应该将 ConnectionRequest 的 setCookiesEnabled 方法设置为 false。

使用了错误的代码

    try {
          ConnectionRequest connectionRequest = new ConnectionRequest() {

            @Override
            protected void initConnection(Object connection) {
                super.initConnection(connection);
                storeAndDeleteUserCookiesData();
            }

            @Override
            protected void readResponse(InputStream input) throws IOException {
            }

            @Override
            protected void postResponse() {
                restoreCookies();
            }

            @Override
            protected void handleException(Exception err) {
                restoreCookies();
            }

            @Override
            protected void handleErrorResponseCode(int code, String message) {
                restoreCookies();
            }

            @Override
            public void retry() {
                super.retry();
            }
        };

        NetworkManager.getInstance().addToQueue(connectionRequest);
    } catch (Exception ex) {
        restoreCookies();
    }



protected void storeAndDeleteUserCookiesData() {
    if (Storage.getInstance().exists("Cookies")) {
        Storage.getInstance().writeObject("Cookies_" + appName, Storage.getInstance().exists("Cookies"));
        Storage.getInstance().deleteStorageFile("Cookies");
    }
    Storage.getInstance().clearCache();
}

protected void restoreCookies() {
    Storage.getInstance().writeObject("Cookies", Storage.getInstance().readObject("Cookies_" + appName));
    Storage.getInstance().clearCache();
}

修复是

        ConnectionRequest connectionRequest = new ConnectionRequest() {
        };
        connectionRequest.setCookiesEnabled(false);

关于java - NetBeans 插件更新后所有连接上的 ConnectionRequest 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34455308/

相关文章:

Java词库

java - 黑莓设计编辑器

codenameone - 监听侧面菜单/汉堡菜单点击事件

codenameone - Calendar 类中缺少一些方法

java - 对话框中的滚动文本不起作用

java - Oracle->MSSQL : How to set identifier generator?

Java 类无法在具有 Maven 依赖项的 Netbeans 之外编译工作

java - 从普通 POJO 自动创建 Java Web 服务

Java Unicode 变量名称梵文

codenameone - 我如何在 Codenameone 中模拟 w3c Dom API