Цель: клиент отправляет входные данные String на сервер (App Engine). Сервер модифицирует ввод, создает файл с выводом и передает его Клиенту. проект ГВТ.
Это схема моего кода (на стороне сервера и на стороне клиента), но я не знаю, как передать файл клиенту. Всякий раз, когда я пытаюсь ввести какой-либо импорт BlobStore на стороне клиента, я получаю ошибки во время выполнения (но не во время сборки или компиляции).
Запись файлов в Blobstore помечена как экспериментальная (http://code.google.com/appengine/docs/java/blobstore/overview.html#Writing_Files_to_the_Blobstore). Может еще не работает? Не могли бы вы помочь мне с этой проблемой? Даже если он не использует BLOB-объекты, если цель выше выполнена. Спасибо.
ProjectServiceImpl.java
public class ProjectServiceImpl extends RemoteServiceServlet implements ProjectService
{
public String project(String input) throws IllegalArgumentException
{
String output = doSomethingWith(input);
FileService fileService = FileServiceFactory.getFileService();
AppEngineFile file = fileService.createNewBlobFile("text/plain");
boolean lock = true;
FileWriteChannel writeChannel = fileService.openWriteChannel(file, lock);
writeChannel.write(ByteBuffer.wrap("Hello world!".getBytes()));
writeChannel.closeFinally();
BlobKey blobKey = fileService.getBlobKey(file);
BlobstoreService blobService = BlobstoreServiceFactory.getBlobstoreService();
}
}
ProjectService.java
public interface ProjectService extends RemoteService {
String project(String name) throws IllegalArgumentException;
}
ProjectServiceAsync.java
public interface ProjectServiceAsync {
void project(String input, AsyncCallback<String> callback)
throws IllegalArgumentException;
}
MyProject.java: Клиентская сторона
[...]
projectService.project(originalString, new AsyncCallback<String>() {
[...]
public void onSuccess(final String result)
{
BlobstoreService blobService = BlobstoreServiceFactory.getBlobstoreService();
}
});