当有更多附件并且正在从代码中将所有附件添加到Google驱动器中时,会出现以下说明的例外情况。
com.google.apphosting.api.DeadlineExceededException
处理此请求的进程遇到问题,导致它退出。这可能会导致新进程用于您的应用程序的下一个请求。如果经常看到此消息,则可能会在应用程序初始化期间抛出异常。 (错误代码104)
使用以下代码将附件保存到Google云端硬盘中。
public File insertFile(Drive service, String title, String description, String mimeType,String parentId , String filename, byte fileByteArray[],
HttpServletRequest req, HttpServletResponse resp)
throws MessagingException, ParseException, InterruptedException
{
try
{
File body = new File();
body.setTitle(title);
body.setDescription(description);
body.setMimeType(mimeType);
if(parentId != null && parentId.length() > 0)
body.setParents(Arrays.asList(new ParentReference[] {
(new ParentReference()).setId(parentId)
}));
com.google.api.services.drive.Drive.Files.List files = service.files().list();
FileList fileList = (FileList)files.execute();
List fileArray = fileList.getItems();
log.info("fileArray"+fileArray);
log.info("file Array Size"+fileArray.size());
File file=null;
try{
file = (File)service.files().insert(body, new InputStreamContent(mimeType, new ByteArrayInputStream(fileByteArray))).execute();
log.info("-----------File----------"+file);
System.out.println("FileName="+MimeUtility.encodeText(file.getTitle()));
System.out.println("File URL"+file.getAlternateLink());
System.out.println("File ID"+file.getId());
return file;
}
catch(DeadlineExceededException e)
{
log.info((new StringBuilder("An error occured: ")).append(e).toString());
//inserted for attachment saving error
System.out.println("inside exception deadlineexception");
}
catch(Exception e)
{
log.info((new StringBuilder("An error occured: ")).append(e).toString());
}
return null;
}
有人可以建议一种优化代码的方法,以便所有附件都可以将10到15左右的内容保存到Google驱动器中,而不会有任何例外。