Сервлет, запись данных - PullRequest
       1

Сервлет, запись данных

0 голосов
/ 24 февраля 2011

У меня был сервлет, который работал на моей локальной машине с Windows, используя локальный хост.Нам удалось заполучить одного из наших коллег в Америке, который сейчас размещает его на своем компьютере с Linux, поэтому сейчас мы можем протестировать программу в запутанной реальной среде.

Однако я, похоже, получаюошибка, которую я не могу отладить записать сейчас, так как мой руководитель ушел на день, и у меня нет доступа.Мы оставили это при понимании, что я сделаю некоторое исследование.

Как раз перед тем, как он ушел, я сузил его до этих строк кода

file = File.createTempFile("temp", Long.toString(System.nanoTime()));
             out.print("Managed to make temp file in trst_servlet");
             FileWriter writer = new FileWriter(file);
             ObjectOutputStream oos = xstream.createObjectOutputStream(writer, "ProcessedInformation");
         oos.writeObject(returnedSearchData);
         oos.flush();
         oos.close();

         out.print("object Persisted"); //PROGRAMME MAKES IT TO HERE
         response.setContentLength((int)(file.length()));
         FileInputStream in = new FileInputStream(file);

         OutputStream ops = response.getOutputStream();

         byte[]buf = new byte[1024];
         int count = 0;
         while((count = in.read(buf)) >= 0)
         {
             ops.write(buf, 0, count);
         }
         in.close();
         ops.close();
     }

     catch(IOException ex)
             //EXCEPTION CAUGHT HERE

Мне было интересно, есть ли у кого-нибудь идеи, если это проблема с размерами буфера в Linux?или, например, написание файлов большого размера, а затем попытка отправить их обратно по проводам.

По сути, этот сервлет на основе Java записывает xml в мою программу на c #.

Спасибо

1 Ответ

0 голосов
/ 24 февраля 2011

В чем ошибка? Это работает, если вы загружаете URL в браузере?

Возможные проблемы:

  1. Учитывая, что ранее он работал на другом боксе, теперь на новом боксе файл не может быть найден, поскольку он находится в другом относительном местоположении.

  2. Работали на машине с Windows, но не на Linux? Вы использовали разделители пути Windows в пути к файлу? «путь \ к \ файлу» вместо «путь / к / файлу»?

  3. У вас не установлен тип контента "application / xml", и клиент C # по какой-то причине отклоняет его. (Проверьте это в браузере).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...