/Users/jamesagada/.cn1/cn1ConCache/aHR0cHM6Ly96aWVtb3ppLWEzZWYucmVzdGRiLmlvL3Jlc3QvemllbW96aS11c2Vycz9maWx0ZXI9JnE9JTdCJTIycGhvbmUlMjIlM0ElMjAlMjIwODAzNDAyMTI2OCUyMiUyMCUyQyUyMnBhc3N3b3JkJTIyJTNBJTIwJTIydHdhbGElMjIlMjAlN0QmbWV0YWZpZWxkcz10cnVlJm1heD0xMCZoPSU3QiUyMiUyNG9yZGVyYnklMjIlM0ElN0IlMjJfY3JlYXRlZCUyMiUzQSUyMC0xJTIwJTdEJTdEJnNraXA9MCZmZXRjaENoaWxkcmVuPXRydWU=:java.io.FileNotFoundException (文件名太长)在java.io.FileOutputStream.open(FileOutputStream.java:270) at java.io.FileOutputStream.(FileOutputStream.java:213) at java.io.FileOutputStream.(FileOutputStream.java:101) at com.codename1.impl.javase.JavaSEPort.openFileOutputStream(JavaSEPort.java:8543) at com.codename1.io.FileSystemStorage.openOutputStream(FileSystemStorage.java:274) at com.codename1的java.io.FileOutputStream.open0(本地方法)。io.ConnectionRequest.performOperation(ConnectionRequest.java:792) at com.codename1.io.NetworkManager$NetworkThread.run(NetworkManager.java:282) at com.codename1.impl.CodenameOneThread.run(CodenameOneThread.java:176) Network 0:0:19,345 -例外: java.io.IOException -流关闭java.io.IOException:在com.codename1.io.BufferedInputStream.read1(BufferedInputStream.java:338)的com.codename1.io.BufferedInputStream.getInIfOpen(BufferedInputStream.java:140)关闭流com.codename1.io.BufferedInputStream.read(BufferedInputStream.java:445) at com.codename1.io.BufferedInputStream.read(BufferedInputStream.java:668) at com.codename1.io.Util.copyNoClose(Util.java:136) at com.codename1.io.Util.copyNoClose(Util.java:122) at com.codename1.io.Util.copy(Util.java:157) at com.codename1.io.Util.copy(Util.java:111)在com.codename1.io.Util.readInputStream(Util.java:206) at com.codename1.io.ConnectionRequest.readResponse(ConnectionRequest.java:1308) at com.codename1.io.ConnectionRequest.performOperation(ConnectionRequest.java:797) at com.codename1.io.NetworkManager$NetworkThread.run(NetworkManager.java:282) at com.codename1.impl.CodenameOneThread.run(CodenameOneThread.java:176)
这是我在使用REST访问URL时遇到的错误。我想不出为什么。我注意到,如果指定了一些查询参数,但服务器返回有效的结果,则会发生这种情况。
发布于 2019-02-13 03:15:38
这是因为ConnectionRequest的默认缓存模式是智能缓存。因此,我们尝试保存连接的内容,以供以后检索。这忽略了windows FAT文件系统限制文件长度的事实。这对于即将进行的更新是固定的,并将文件名限制为255个字符,这些字符应该可以工作。更新还将把API cacheMode(ConnectionRequest.CachingMode)添加到RequestBuilder类中,这样您就可以在单个级别上自定义缓存。
作为一种解决办法,您可以使用以下方法禁用全局缓存:
ConnectionRequest.setDefaultCacheMode(ConnectionRequest.CachingMode.OFF);发布于 2019-02-20 08:46:53
刚刚得到了完全相同的问题,发现ConnectionRequest引发了一个内部异常,只有在模拟器中进行测试时才能找到这个异常。传递给请求的URL是base64编码的,这就是为什么它成为文件名太长的原因。在每个ConnectionRequest上设置缓存模式没有任何效果。因此,唯一的解决办法是使用setDefaultCacheMode。我希望能测试下一个版本。
https://stackoverflow.com/questions/54644088
复制相似问题