Почему сервлет Google App Engine стареет и больше не существует данных из файла? - PullRequest
0 голосов
/ 28 декабря 2010

У меня есть сервлет Google App Engine, он должен зайти на мой сайт и получить файл, а затем отобразить содержимое этого файла на странице обслуживания сервлета, код выглядит следующим образом:

public class My_Servlet extends HttpServlet
{
  public void init(ServletConfig config) throws ServletException
  {
    super.init(config);
    System.gc();
  }

  public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException
  {
    PrintWriter out=response.getWriter();
    response.setContentType("text/html");
    out.println(getTextFile());
}

String getTextFile()
{
  String Text="";

  try
  {
    URL url=new URL("http://example.com/A_Dir/Test.txt");
    BufferedReader reader=new BufferedReader(new InputStreamReader(url.openStream()));
    String line;

    while ((line=reader.readLine())!=null) { Text+=line+"<Br>"; }
    reader.close();
  }
  catch (Exception e) {  }

  return Text;
}

Это сработало, но проблема в том, что после того, как я изменил содержимое файла "Test.txt" на моем сайте, приложение Google все еще отображает старые данные, я проверил и дважды проверил файл на моем сайте, старый данных больше нет, и я подумал, что каждый раз, когда я нажимаю на ссылку, обслуживаемую GAE, она вызывает getTextFile(), создает URL, получает файл и анализирует строки, но кажется, что GAE запоминает старые данные из 3 дней назад, и независимо от того, сколько раз я обновлял страницу или обновлял приложение GAE и перезагружал его в App Engine [и я вижу изменения, внесенные в обновленный сервлет], он все еще обслуживает данные за 3 дня , Зачем? Как заставить его динамически загружать этот файл?

1 Ответ

0 голосов
/ 28 декабря 2010

GAE кеширует файл. Попробуйте:

URL url=new URL("http://mysite.com/A_Dir/Test.txt?r="+System.currentTimeMillis());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...