迁移到HRD后写入google数据存储区的代码中断

时间:2012-09-20 05:27:40

标签: google-app-engine

下面的代码在主从复制数据存储上运行得非常好,并且在我们今天转移到HRD之后就破了。我看到的例外就是

E 2012-09-19 21:59:13.603
vik.sakshum.sakshumweb.server.common.CommonServiceCode writeToGoogleStore: Exception in finally of execute of writeToGoogleStore
E 2012-09-19 21:59:13.603
vik.sakshum.sakshumweb.server.common.CommonServiceCode writeToGoogleStore: Exception class is :java.io.IOException
E 2012-09-19 21:59:13.603
vik.sakshum.sakshumweb.server.common.CommonServiceCode writeToGoogleStore: Exception is :null

代码

try {

        log.info("Starting google storage");
        // Get the file service
        FileService fileService = FileServiceFactory.getFileService();
        GSFileOptionsBuilder optionsBuilder = new GSFileOptionsBuilder()
                .setBucket(bucketName).setKey(key).setAcl("public-read")
                .setMimeType("text/html");

        // Create your object
        AppEngineFile writableFile = fileService
                .createNewGSFile(optionsBuilder.build());

        // Open a channel for writing
        boolean lockForWrite = true;
        FileWriteChannel writeChannel = fileService.openWriteChannel(
                writableFile, lockForWrite);
        PrintWriter out = new PrintWriter(Channels.newWriter(writeChannel,
                "UTF8"));
        out.println(emailMsgTxt);
        out.close();
        writeChannel.closeFinally();
    } catch (Exception e) {
        e.printStackTrace();
        log.severe("Exception in finally of execute of writeToGoogleStore");
        log.severe("Exception class is :" + e.getClass().getName());
        log.severe("Exception is :" + e.getMessage());
        return "failed";
    }

1 个答案:

答案 0 :(得分:1)

转移到HR也意味着您有一个新的应用名称和服务帐户名称。您可能需要将新帐户添加到该存储桶的ACL中。