4

在尝试使用 ant- 构建 gwtp+mgwt 应用程序时,我遇到了很多这些错误

准备方法 tabBarMoreImage
     [java] [ERROR] 尝试写入图像包时发生错误。
     [java] javax.imageio.IIOException: 无法创建输出流!
     [java] 在 javax.imageio.ImageIO.write(ImageIO.java:1560)

...
  准备方法 tabBarMostRecentImage
     [java] [ERROR] 尝试写入图像包时发生错误。
     [java] javax.imageio.IIOException: 无法创建输出流!
...
 [java] 原因:javax.imageio.IIOException: 无法创建缓存文件!
     [java] 在 javax.imageio.ImageIO.createImageOutputStream(ImageIO.java:397)
     [java] 在 javax.imageio.ImageIO.write(ImageIO.java:1558)
     [java] ... 33 更多
     [java] 原因:java.io.IOException: Too many open files
     [java] 在 java.io.UnixFileSystem.createFileExclusively(本机方法)
     [java] 在 java.io.File.checkAndCreate(File.java:1704)
     [java] 在 java.io.File.createTempFile(File.java:1792)
     [java] 在 javax.imageio.stream.FileCacheImageOutputStream.(FileCacheImageOutputStream.java:71)
     [java] 在 com.sun.imageio.spi.OutputStreamImageOutputStreamSpi.createOutputStreamInstance(OutputStreamImageOutputStreamSpi.java:50)
     [java] 在 javax.imageio.ImageIO.createImageOutputStream(ImageIO.java:393)
     [java] ... 34 更多
     [java] 准备方法getButtonBarArrowDownImage
     [java] [ERROR] 尝试写入图像包时发生错误。
     [java] javax.imageio.IIOException: 无法创建输出流!
     [java] 在 javax.imageio.ImageIO.write(ImageIO.java:1560)
     [java] 在 com.google.gwt.resources.rg.ImageBundleBuilder.createImageBytes(ImageBundleBuilder.java:558)
     [java] 在 com.google.gwt.resources.rg.ImageBundleBuilder.toPng(ImageBundleBuilder.java:544)
...

该应用程序在开发模式下运行良好。有任何想法吗?

4

2 回答 2

2

也许 GWT 编译器正在泄漏文件描述符(因此出现“打开的文件过多”异常)。也许您所处的环境限制了每个用户的打开文件数量(这是您自己的机器)?

使用 来检查所有用户限制ulimit -a

您可以尝试使用 增加打开文件的限制ulimit -Hn <number>。这至少应该可以帮助您诊断。

于 2012-08-25T02:24:27.663 回答
1

有完全相同的问题(和错误消息)。

在 google groups (GWT) 上的这个线程中找到了解决方案
我正在使用 Linux(我不知道这是不是你的情况)

在 /etc/security/limits.conf 我添加

* soft nofile 65535
* hard nofile 65535

要应用新设置,请注销并重新登录。

于 2012-10-24T08:27:08.900 回答