Stackoverflow メンバーの皆様、こんにちは。
しばらくの間、GWT アプリケーションを切り替えました。GWT のバージョンは 2.4 から 2.6 です。そこで、そこで新しいスーパー開発モードにも変更しました。これにより、ローカルの jetty サーバーをインストールする必要があり、内部の eclipse ?jetty? を使用できませんでした。もう。サーバー側では、sun 自体の 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...");
ご覧のとおり、バイトストリームのファイルをファイルシステムに書き込むことはできますが、そのバイトストリームを 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)