google appengine не поддерживает FileOutputStream

#java #google-app-engine #gwt #gxt

#java #google-app-engine #gwt #gxt

Вопрос:

Я пытаюсь выполнить запись в файл в Google appengine, но он выдает сообщение об ошибке java.io.FileOutputStream is not supported by Google App Engine's Java runtime environment

несмотря на то, что я импортировал

 import java.io.File;
import java.io.FileInputStream;

import java.io.FileOutputStream;
import java.io.IOException;
  

Ответ №1:

Ну, это не ошибка компилятора Java. Этот класс является ограниченным API в Google App Engine, вам не разрешено его использовать.

Прочитайте о среде выполнения GAE Java и ограничениях здесь:http://code.google.com/appengine/docs/java/runtime.html

Наиболее близким к хранилищу файлов в GAE является API Blobstore:http://code.google.com/appengine/docs/java/blobstore /

Если вам нужно создавать файлы в code, GAE — неподходящая платформа для вас.

Комментарии:

1. спасибо, Стрелок, возможно ли загрузить файл на другой ftp-сервер с компонентами gwt или gxt во внешнем интерфейсе??

2. Нет, вы не можете открыть какое-либо соединение с сокетом, кроме как с помощью службы выборки URL по HTTP / HTTPS для этих диапазонов портов: 80-90, 440-450, 1024-65535.

3. Я не уверен, каковы ваши требования, но вот как вы записываете в хранилище больших двоичных объектов code.google.com/appengine/docs/java/blobstore /…

4. еще раз спасибо, сэр, я хочу загрузить файл на другой сервер, используя ftp, а не GAE

Ответ №2:

Вы пробовали использовать java.io.ByteArrayOutputStream вместо FileOutputStream?

Это должно позволить вам использовать ваши внешние библиотеки, которым требуются файлы, но которые все еще работают в белом списке GAE JRE

Комментарии:

1. в любом случае, спасибо, сэр, я решил эту проблему, сменив сервер. 🙁

Ответ №3:

Платформа GAE разрешает доступ только на чтение к файловой системе в пределах области действия файлов приложения. Если вам вообще нужно что-то написать, Datastore и Blobstore — это то место, куда можно писать!

Комментарии:

1. в любом случае, спасибо, сэр, я решил эту проблему, сменив сервер. 🙁