Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Web application + desktop application


Автор: garbuz 26.12.2008, 13:57
Есть веб-приложение, которое крутится под томкатом, приложение грузит файлы на сервер, а так же выгружает, ну т.е. позволяет пользователю их скачивать.  Есть еще десктопное приложение, которое обрабатывает загруженный файл и генерит новый файл, который соответственно и надо передать пользователю. Вот вопрос, как это лучше организовать? Как передать новый файл из десктоп приложения веб приложению и потом отправить пользователю? Ну или что-то подобное, может кто-то сталкивался с подобной задачей.
Заранее спасибо smile

Автор: ecologist 26.12.2008, 14:01
Цитата(garbuz @  26.12.2008,  13:57 Найти цитируемый пост)
Вот вопрос, как это лучше организовать? Как передать новый файл из десктоп приложения веб приложению и потом отправить пользователю?

Ну вообщем-то есть FTP - пусть клиент загружает с какого-нибудь хоста файлики. Можно даже по SFTP - так даже секьюрити вполне прилично получается. Ну или шифровать с обоих сторон.

Автор: Platon 26.12.2008, 14:06
Обычный HTTP чем не устраивает? Есть библиотека http://forum.vingrad.ru/faq/topic-216595.html ^_^
Но порой люди обходятся обычными HttpUrlConnection

Добавлено через 2 минуты и 16 секунд
http://forum.vingrad.ru/topic-201291/view-findpost/p-1446520.html

Автор: powerOn 26.12.2008, 14:23
На веб-сервисах можно сделать (JAX-WS, ну или JAX-RS).

Автор: ecologist 26.12.2008, 14:26
Как обычно - если нет понятной архитектуры - хрен знает что можно предложить.
Если исходить из того, что передача через файлы уже утверждена - то по FTP самый раз.
Если подумать, что файлы не самое удачное решение - то WS или HTTP.
Если подумать, что хорошо бы это все опубликовать сразу и дать разные права - то можно докатаится для портального решение, которое объеденит всех ползователй и даст админу возможность настроить UI для каждого.

Забавно smile

Автор: garbuz 26.12.2008, 15:07
Спасибо, столько преложений, даже не знаю, что и выбрать...
На счет фтп надо подумать, еше точно не знаю, будет ли фтп или нет.
С HttpClient'ом ранешь не работал, но может и стоит попробовать. Только вот я не понимаю, мне придется вообще отказаться от своего приложения загружающего\выгружающего файлы или все вместе скрутить можно будет? Смогу ли я реализовать нужный функицонал, а то фраза
Цитата

позволяет скачать страницы с интернета с возможностью управлять Cookie и отправлять заголовки на сервер

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

Еще раз опишу, что требуется:
1) Заходим на траничку, грузим файл, сабмитим, файл уходит.
2) На стороне сервера помещаем этот файл в определенное место (папка).
3) Данная папка мониторится десктоп приложением, как только появляется новый файл, приложение его подхватывает и обрабатывает.
4) Все то же десктоп приложение генерит новый файл.
5) Этот новый файл необходимо отправить пользоателю, чтобы у него на странице появился запрос на скачиваение.

Надо как-то сказать сервлету, где лежит файл и кокое его имя, вот наверно самое главное.
Если сильно ушел в сторону - прошу не пинать. Жду советов, предложени, обсуждения предложненных решений smile


PS. я вот тут  подумал, а нельзя ли скрутить десктоп приложение с httpClient'ом, чтобы он после генерации файла отправлял запрос нашему сервлету с нужными данными (путь до файла, его имя, ну или сразу сам файл), короче что-то такое  smile 

Автор: MisterCleric 26.12.2008, 15:19
По-моему, у тебя все нормально.
У меня есть подобная задача.
Мой сервер приложений JBOSS стоит на Linux.
Я создал в каталогах сервера свою папочку, куда и складирую сгенерированные Java'ой файлы.
Есть Виндозное приложение, которое настроено на мониторинг определенной папки. 
В моем случае будет работать так: на Linux настраивается СамбаСервер на мою папку, на Винде подключается сетевой диск на эту папку. И приложение смело ее мониторит: когда там есть файлы оно их читает, валидирует (это XML) и в случае успеха забирает их себе с удалением из моей папки.
Аналогичным способом оно может в эту папку само положить файлы.
Вот когда пользователь логинится я смогу причитать содержимое этой папки, и если там есть файлы, то покажу пользователю ссылочку на их скачивание. 
В чем проблема не пойму? По-моему классическая задача.

Автор: garbuz 26.12.2008, 15:54
Цитата(MisterCleric @  26.12.2008,  15:19 Найти цитируемый пост)
Аналогичным способом оно может в эту папку само положить файлы.
Вот когда пользователь логинится я смогу причитать содержимое этой папки, и если там есть файлы, то покажу пользователю ссылочку на их скачивание. 
В чем проблема не пойму? По-моему классическая задача.

Хм... а мне как проще тогда поступить? При рефреше страницы проверять ести ли сгенерированный файл, и если есть, то на него выводить ссылку? Так? А если времени обновления после сабмита не хватит на генерацию файла? Рефрешить несколько раз как-то не красиво...

Автор: MisterCleric 26.12.2008, 16:01
Ну эт зависит от логики твоего приложения.
Может стоит кнопочку на странице добавить  типа "Проверить наличие файлов".
Герерируешь файл ведь не ты, а десктопное приложение. А файл появится в папке только после того, как оно его сгенерировало.
Можешь форвардить сервлет сам на себя, пока не появится файл

Автор: garbuz 26.12.2008, 16:26
Цитата(MisterCleric @  26.12.2008,  16:01 Найти цитируемый пост)
Ну эт зависит от логики твоего приложения.
Может стоит кнопочку на странице добавить  типа "Проверить наличие файлов".
Герерируешь файл ведь не ты, а десктопное приложение. А файл появится в папке только после того, как оно его сгенерировало.
Можешь форвардить сервлет сам на себя, пока не появится файл 

Да, впринципе можно и так smile Спасибо!

Все еще желаю выслушать аргументы за HttpClient или что-нибудь другое smile

Автор: Kangaroo 26.12.2008, 16:46
Цитата(garbuz @  26.12.2008,  15:54 Найти цитируемый пост)
А если времени обновления после сабмита не хватит на генерацию файла? Рефрешить несколько раз как-то не красиво...

Ajax для этого придумали. Показывай пользователю какой-нибудь картинку-загрузку и проверяй у сервера каждые Н-секунд - появился ли файл.


Цитата(garbuz @  26.12.2008,  16:26 Найти цитируемый пост)
Все еще желаю выслушать аргументы за HttpClient

Я вообще не понял при чем тут ШттпКлиент? Он служит для программной работы с шттп. Где ты его использовать собрался?

Автор: garbuz 26.12.2008, 16:49
Цитата(Kangaroo @  26.12.2008,  16:46 Найти цитируемый пост)
Ajax для этого придумали. Показывай пользователю какой-нибудь картинку-загрузку и проверяй у сервера каждые Н-секунд - появился ли файл.

Мда, как-то я про фджакс и забыл, спасибо smile



Цитата(Kangaroo @  26.12.2008,  16:46 Найти цитируемый пост)
Я вообще не понял при чем тут ШттпКлиент? Он служит для программной работы с шттп. Где ты его использовать собрался? 

Посоветовали выше вот и переспросил, сам его никогда не использовал.

Автор: Kangaroo 26.12.2008, 19:08
Цитата(garbuz @  26.12.2008,  16:49 Найти цитируемый пост)
Посоветовали выше вот и переспросил, сам его никогда не использовал. 

Да, извини, не увидел. Может Platon вопрос не так понял, но ШттпКлиент здесь не нужен.


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)