如何将 Appengine Blobstore 与 SpringBoot 和 Thymeleaf 结合使用?

问题描述

我尝试在我的应用程序中使用 Appengine Blobstore 发送大文件,所以在我的控制器中我这样做是为了在我的页面 html 中使用 thymeleaf 发送 blobstoreService

private BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService();
        model.addAttribute("blobstoreService",blobstoreService);

这是我表单中发送请求的操作;

 th:action="${blobstoreService.createUploadUrl(/upload)}"

这是我的控制器来处理呼叫

@PostMapping("/upload")
        public ResponseEntity<String> uploadVideo(HttpServletRequest req,HttpServletResponse res){
  Map<String,List<BlobKey>> blobs = blobstoreService.getUploads(req);
        List<BlobKey> blobKeys = blobs.get("videoFile");
        if (blobKeys == null || blobKeys.isEmpty()) {
             res.sendRedirect("/");
          } else {
                BlobKey blobKey = new BlobKey(blobKeys.get(0).getKeyString());
                blobstoreService.serve(blobKey,res);
            }
}

我收到此错误

    ERROR 9044 --- [qtp204715855-22] o.s.b.w.servlet.support.ErrorPageFilter  : Forwarding to error page from request [/_ah/upload/aglub19hcHBfaWRyIgsSFV9fQmxvYlVwbG9hZFNlc3Npb25fXxiAgICAgIDACQw] due to exception [null]

java.lang.NullPointerException: null
    at com.google.appengine.api.blobstore.dev.UploadBlobServlet.handleUpload(UploadBlobServlet.java:432) ~[appengine-api-stubs.jar:na]
    at com.google.appengine.api.blobstore.dev.UploadBlobServlet.access$000(UploadBlobServlet.java:70) ~[appengine-api-stubs.jar:na]
    at com.google.appengine.api.blobstore.dev.UploadBlobServlet$1.run(UploadBlobServlet.java:116) ~[na:na]
    at java.security.AccessController.doPrivileged(Native Method) ~[na:1.8.0_201]
    at com.google.appengine.api.blobstore.dev.UploadBlobServlet.doPost(UploadBlobServlet.java:113) ~[appengine-api-stubs.jar:na]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) ~[servlet-api-3.1.jar:3.1.0]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) ~[servlet-api-3.1.jar:3.1.0]
    at org.eclipse.jetty.servlet.ServletHolder$NotAsync.service(ServletHolder.java:1452) ~[na:na]
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:791) ~[na:na]
    at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1626) ~[na:na]
    at com.google.appengine.tools.development.ResponseRewriterFilter.doFilter(ResponseRewriterFilter.java:134) ~[na:na]

对此有任何想法!提前谢谢你

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...