【发布时间】:2014-10-20 08:02:53
【问题描述】:
我正在尝试使用 BlobstoreService 来将图像上传到我的应用程序。 根据 GAE API,您应该这样做:
<form action="<%= blobstoreService.createUploadUrl("/upload") %>" method="post" enctype="multipart/form-data">
<input type="file" name="myFile">
<input type="submit" value="Submit">
</form>
我的问题是我无法使用 JSP,因为我正在使用 phonegap 创建一个 android 应用程序并且不支持 JSP,所以我以另一种方式执行此操作,我有一个 servlet 接收请求,生成 URL 并转发对生成的 URL 的请求如下:
GetBlobstoreServiceUrlServlet:
String url = blobstoreService.createUploadUrl("/AddDogPictureServlet");
int ahUploadIndex = url.indexOf("/_ah/upload");
url = url.substring(ahUploadIndex);
ServletContext context = getServletContext();
RequestDispatcher rd = context.getRequestDispatcher(url);
rd.forward(request, response);
当我在本地计算机上运行它时,它运行良好,但是当我将它上传到 GAE 时,我只在这个 servlet 上收到“错误:NOT_FOUND”。
我还有其他 serlet,它们都工作正常。
我检查了 web.xml 文件和正确映射的 servlet(否则它不会在本地工作):
<servlet>
<servlet-name>GetBlobstoreServiceUrlServlet</servlet-name>
<servlet-class>Servlets.BlobstoreServlets.GetBlobstoreServiceUrlServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>GetBlobstoreServiceUrlServlet</servlet-name>
<url-pattern>/GetBlobstoreServiceUrlServlet</url-pattern>
</servlet-mapping>
还有其他方法可以实现这个目标吗?
【问题讨论】:
标签: java google-app-engine servlets blobstore