Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine 使用java从google云存储读取文件_Google App Engine_Gwt_Servlets_Google Cloud Storage - Fatal编程技术网

Google app engine 使用java从google云存储读取文件

Google app engine 使用java从google云存储读取文件,google-app-engine,gwt,servlets,google-cloud-storage,Google App Engine,Gwt,Servlets,Google Cloud Storage,我不熟悉谷歌云存储api,也不熟悉使用服务器。我正试图用Java编写一个web应用程序,使用Eclipse的IDE读取存储在google云存储中的文件。我在服务器端的文件中有要读取的代码,但不确定如何修改客户端的示例代码,使其支持httpServlet而不是RemoteServiceServlet。任何帮助或建议都将不胜感激 下面是我在服务器端的代码 package com.google.gwt.sample.interfacecloud.server; import java.io.Buff

我不熟悉谷歌云存储api,也不熟悉使用服务器。我正试图用Java编写一个web应用程序,使用Eclipse的IDE读取存储在google云存储中的文件。我在服务器端的文件中有要读取的代码,但不确定如何修改客户端的示例代码,使其支持httpServlet而不是RemoteServiceServlet。任何帮助或建议都将不胜感激

下面是我在服务器端的代码

package com.google.gwt.sample.interfacecloud.server;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.nio.channels.Channels;
import java.util.ArrayList;

import javax.servlet.http.*;
import com.google.gwt.sample.interfacecloud.client.GreetingService;

import com.google.appengine.api.files.AppEngineFile;
import com.google.appengine.api.files.FileReadChannel;
import com.google.appengine.api.files.FileService;
import com.google.appengine.api.files.FileServiceFactory;
import com.google.appengine.api.files.FileWriteChannel;
import com.google.appengine.api.files.GSFileOptions.GSFileOptionsBuilder;

@SuppressWarnings("serial")
public class CloudInteraction extends HttpServlet implements GreetingService{
public static final String BUCKETNAME = "obd_data";
public static final String FILENAME = "data.txt";

@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException
{
    resp.setContentType("text/plain");

    String filename = "/gs/" + BUCKETNAME + "/" + FILENAME;
    FileService fileService = FileServiceFactory.getFileService();
    AppEngineFile readableFile = new AppEngineFile(filename);
    FileReadChannel readChannel =
            fileService.openReadChannel(readableFile, false);
    BufferedReader reader = 
            new BufferedReader(Channels.newReader(readChannel, "UTF8"));
    String line = reader.readLine();
    resp.getWriter().println("READ:"+line);
    System.out.println(line);
    readChannel.close();
}

@Override
public String greetServer(String name) throws IllegalArgumentException {
    // TODO Auto-generated method stub
    return null;
}

}

您正在将RPC与普通servlet混合并匹配。你不应该那样做。如果您打算使用普通servlet,就不要使用用于此类交互的RPC接口。在这种情况下,使用RequestBuilder会更好。注意-您的要求不是很清楚吗

感谢您的回复,我发现我正在尝试将GWT与应用程序引擎插件一起使用。当我转而只使用appengine时,我就能够从谷歌云存储中存储的文件中读取数据。