本地Jetty6无法使用ImageIO从字节数组(ByteArrayInputStream)读取图像

时间:2014-04-30 10:28:13

标签: java eclipse macos javax.imageio bytearrayinputstream

您好Stackoverflow成员,

有一段时间我们换了GWT应用程序,GWT版本从2.4到2.6。 所以我们也改为新的超级开发模式。有了这个,我们需要安装 一个本地码头服务器,不能使用内部日食?码头?了。 在服务器端,我们使用ImageIO包编写和保存图像 太阳本身。直到上周,这没有问题,但后来我们检查了 我们的应用程序在这种情况下不再能够从bytearrayinputstream读取 它在我们的部署服务器上。为了可靠的开发,我们需要这种可能 在本地平台上编码和测试。 问题是,ImageIO.read静态函数不再起作用,但它 不仅不再工作,它退出代码而不抛出异常! 我现在将向您展示代码部分:

System.out.println("createImage..."+file+", "+response+", fib"+fileInBytes+" fibs:"+fileInBytes.length);
ETFile f = file;
boolean isImage = false;
BufferedImage image = null;

try {
    System.out.println("read1...");
    ByteArrayInputStream bais = new ByteArrayInputStream(fileInBytes);
    System.out.println("read2..."+bais);
    image = ImageIO.read(bais);

    //ByteArrayOutputStream baos = new ByteArrayOutputStream();
    //baos.write(fileInBytes);
    //saveStreamToFile(filename+"_bla.jpg", baos, data);
    //baos.close();

    bais.close();
    System.out.println("read2.5...");

    if (image != null) {
         System.out.println("read2.6...");
         isImage = true;
    }

    System.out.println("read3...");
} catch (/*IO*/Exception e) {
    System.out.println("read4...");
    System.out.println(e.getLocalizedMessage());
    e.printStackTrace();
} finally {
    System.out.println("read4.5...");
}

System.out.println("isimage:"+isImage);

我只得到以下输出:

read1...
read2...java.io.ByteArrayInputStream@15bea4b

但不是:

System.out.println("read2.5...");
System.out.println("read2.6...");
System.out.println("read3...");
System.out.println("read4...");
nor
System.out.println("read4.5...");

如您所见,我可以将bytestream的文件写入文件系统,但是 无法使用ImageIO.read读取该字节流到图像。 我不知道为什么。字节流在那里,有大小和写入 它到磁盘也是正确的,但如果我以某种方式使用ImageIO.read服务器 退出代码,没有任何例外.. 有人知道,这里出了问题吗? 谢谢。

此致 最大

编辑附加堆栈跟踪

thread:1323900765@qtp-433064372-0:java.lang.ClassLoader$NativeLibrary.load(Native Method)
thread:1323900765@qtp-433064372-0:java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1833)
thread:1323900765@qtp-433064372-0:java.lang.ClassLoader.loadLibrary(ClassLoader.java:1730)
thread:1323900765@qtp-433064372-0:java.lang.Runtime.loadLibrary0(Runtime.java:823)
thread:1323900765@qtp-433064372-0:java.lang.System.loadLibrary(System.java:1044)
thread:1323900765@qtp-433064372-0:sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:50)
thread:1323900765@qtp-433064372-0:java.security.AccessController.doPrivileged(Native Method)
thread:1323900765@qtp-433064372-0:java.awt.Toolkit.loadLibraries(Toolkit.java:1605)
thread:1323900765@qtp-433064372-0:java.awt.Toolkit.<clinit>(Toolkit.java:1627)
thread:1323900765@qtp-433064372-0:sun.awt.AppContext$2.run(AppContext.java:240)
thread:1323900765@qtp-433064372-0:sun.awt.AppContext$2.run(AppContext.java:226)
thread:1323900765@qtp-433064372-0:java.security.AccessController.doPrivileged(Native Method)
thread:1323900765@qtp-433064372-0:sun.awt.AppContext.initMainAppContext(AppContext.java:226)
thread:1323900765@qtp-433064372-0:sun.awt.AppContext.access$200(AppContext.java:112)
thread:1323900765@qtp-433064372-0:sun.awt.AppContext$3.run(AppContext.java:306)
thread:1323900765@qtp-433064372-0:java.security.AccessController.doPrivileged(Native Method)
thread:1323900765@qtp-433064372-0:sun.awt.AppContext.getAppContext(AppContext.java:287)
thread:1323900765@qtp-433064372-0:javax.imageio.spi.IIORegistry.getDefaultInstance(IIORegistry.java:137)
thread:1323900765@qtp-433064372-0:javax.imageio.ImageIO.<clinit>(ImageIO.java:48)
thread:1323900765@qtp-433064372-0:com.et.eb.server.servlets.ETFileUploadServlet.createImage(ETFileUploadServlet.java:441)
thread:1323900765@qtp-433064372-0:com.et.eb.server.servlets.ETFileUploadServlet.writeImage(ETFileUploadServlet.java:285)
thread:1323900765@qtp-433064372-0:com.et.eb.server.servlets.ETFileUploadServlet.readFormData(ETFileUploadServlet.java:364)
thread:1323900765@qtp-433064372-0:com.et.eb.server.servlets.ETFileUploadServlet.doPost(ETFileUploadServlet.java:122)
thread:1323900765@qtp-433064372-0:javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
thread:1323900765@qtp-433064372-0:javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
thread:1323900765@qtp-433064372-0:org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
thread:1323900765@qtp-433064372-0:org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:401)
thread:1323900765@qtp-433064372-0:org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
thread:1323900765@qtp-433064372-0:org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
thread:1323900765@qtp-433064372-0:org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
thread:1323900765@qtp-433064372-0:org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)
thread:1323900765@qtp-433064372-0:org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
thread:1323900765@qtp-433064372-0:org.mortbay.jetty.Server.handle(Server.java:326)
thread:1323900765@qtp-433064372-0:org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
thread:1323900765@qtp-433064372-0:org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:945)
thread:1323900765@qtp-433064372-0:org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756)
thread:1323900765@qtp-433064372-0:org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
thread:1323900765@qtp-433064372-0:org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
thread:1323900765@qtp-433064372-0:org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)
thread:1323900765@qtp-433064372-0:org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)

0 个答案:

没有答案
相关问题