【发布时间】:2015-05-25 10:01:31
【问题描述】:
好吧,我有一个让我发疯的问题!
我在 Weblogic 12.1.1 上部署了一个 Web 应用程序 -i.e.:Weblogic 12c
在某些时候,我想使用以下方式读取图像文件:
BufferedImage templateImage = ImageIO.read(new URL(url));
上一行在 一些 图像上失败,并带有以下如此愚蠢的消息:
For input string: ""
有人建议我使用以下参数更改 Weblogic 的 HTTP 处理程序:
-DUseSunHttpHandler=true
它解决了问题,但我无法实施这个解决方案,因为它非常危险。
让我更疯狂的是,当我使用“Paint”修改图片,添加/删除一些虚拟颜色和/或形状时,它通过了!
(尽管并非所有更改都会使其通过)。
这是我在这里的第一个问题,非常感谢您的帮助。
P.S.:问题只出现在“Weblogic 12c”上,而不是 11g 或其他任何东西上。
编辑:下面是堆栈跟踪:
java.io.IOException: For input string: ""
at weblogic.utils.http.HttpChunkInputStream.initChunk(HttpChunkInputStre
am.java:69)
at weblogic.utils.http.HttpChunkInputStream.skip(HttpChunkInputStream.ja
va:215)
at weblogic.utils.http.HttpChunkInputStream.skipAllChunk(HttpChunkInputS
tream.java:395)
at weblogic.utils.http.HttpChunkInputStream.close(HttpChunkInputStream.j
ava:291)
at weblogic.net.http.KeepAliveStream.close(KeepAliveStream.java:122)
at javax.imageio.ImageIO.read(ImageIO.java:1405)
【问题讨论】:
-
该错误消息是否有堆栈跟踪?另外,请注意,使用
ImageIO.read(URL)将使用URL.openStream()创建一个InputStream来读取。您可以尝试自己将 URL 中的内容读取到字节数组中,然后使用ImageIO.read(new ByteArrayInputStream(bytes))将问题缩小到网络或图像读取。 -
感谢您的回复,我已经在上面添加了堆栈跟踪。值得一提的是,当我尝试为图像文件构造一个 File 对象并将其传递给“读取”方法时,它起作用了!
-
是的,这很可能是一个 Weblogic 错误,将尝试其中一种替代方案,非常感谢。
标签: java image weblogic bufferedimage javax.imageio