0

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)
4

0 に答える 0