首页 文章

如何按名称检索blobstore文件

提问于
浏览
0

我写了以下代码:

FileService fileService = FileServiceFactory
                 .getFileService();

                 // Create a new Blob file with mime-type "text/plain"
                 AppEngineFile file = fileService.createNewBlobFile(
                 "image/jpeg", name);

                 if(null!=file)
                 log.warn(file.toString());

                 FileReadChannel readChannel =
                 fileService.openReadChannel(
                 file, true);

                 // Again, different standard Java ways of reading from
                 // the
                 // channel.
                 BufferedReader reader = new BufferedReader(Channels
                 .newReader(readChannel, "UTF8"));
                 String line = reader.readLine();

                 resp.setContentType("text/plain");
                 resp.getWriter().println(line);

                 readChannel.close();

但不幸的是,它给了我以下例外:

com.google.appengine.file.FileServiceImpl上的com.google.appengine.api.files.FileServiceImpl.translateException(FileServiceImpl.java:597)中的servlet com.google.appengine.api.files.FinalizationException未捕获的异常 . make.CommunCall(FileServiceImpl.java:574)位于com.google.appengine.apli.files.FileServiceImpl.open(FileServiceImpl.java:496)com.google.appengine.api.files.FileServiceImpl.openForRead(FileServiceImpl.java:456) com.google.appengine.api.files.FileServiceImpl.openForRead(FileServiceImpl.java:447)com.google.appengine.apiles.FileServiceImpl.openReadChannel(FileServiceImpl.java:202)com.myfileshost.MyfileshostServlet.doGet上的com.google.appengine.api.files.FileServiceImpl.openForRead(FileServiceImpl.java:447) (MyfileshostServlet.java:362)位于org.mortbay.jetty.servlet的javax.servlet.http.HttpServlet.service(HttpServlet.java:617)的javax.servlet.http.HttpServlet.service(HttpServlet.java:717) . ServletHolder.handle(ServletHolder.java:511)位于com.google的org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1166) . 位于com.google.apphosting.runtime.jetty.SaveSessionFilter的org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1157)上的apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java:102) . doFilter(SaveSessionFilter.java:35)位于com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)的org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1157)在Org.mortbay.jet.SecurityHandler的org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1157)org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)org.mortbay.jetty.security.SecurityHandler .handle(SecurityHandler.java:216)org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)org . 在com.google.apphosting.runtime.jetty.AppVersionHandlerMap上的mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) .handle(AppVersionHandlerMap.java:249)位于org.mortbay上org.mortbay.jetty.Server.handle(Server.java:326)的org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) . 在com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java)的org.mortbay.jetty.HttpConnection $ RequestHandler.headerComplete(HttpConnection.java:923)上的jetty.HttpConnection.handleRequest(HttpConnection.java:542): 76)位于com.google.apphosting.runtime.JavaRuntime的com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:135)上的org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) $ RequestRunnable.run(JavaRuntime.java:446)com.google.tracing.TraceContext $ TraceContextRunnable.runInContext(TraceContext.java:449)com.google.tracing.TraceContext $ TraceContextRunnable $ 1.run(TraceContext.java:455) com.google.tracing.TraceContext.runInContext(TraceContext.java:695)com.google.tracing.TraceContext $ AbstractTraceCon com.google.tracing.TraceContext中的textCallback.runInInheritedContextNoUnref(TraceContext.java:333)$ com.google.tracing.TraceContext $ TraceContextRunnable.run(TraceContext.java:453)中com.google.trace.TraceContext $ AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:325) java.lang.Thread.run中的.google.apphosting.runtime.ThreadGroupPool $ PoolEntry.run(ThreadGroupPool.java:251)(Thread.java:679)

1 回答

相关问题