Доступ к web-каталогу с помощью Java-апплета.
От: dudkaman Россия  
Дата: 02.06.09 13:40
Оценка:
Добрый день.

Возник вопрос.
У меня есть джава-апплет, который должен иметь доступ к каталогу с файлами, который находится в той же папке, что и апплет. Когда я запускал апплет на своей машине, всё работало корректно. Список файлов получался следующим образом:

String[] files = new File("files").list();

Когда я попробовал поместить этот апплет и каталог на сервер и запустить, то прилетает NullPointerException.
Разрешима ли эта задача вообще? И если да, то как её решить.

Ах да, апплет подписан, то есть в этом плане никаких проблем нет.

Если это существенно, то я пишу в NetBeans (может быть нужно выставить какие-нибудь специальные настройки проекта).
Re: Доступ к web-каталогу с помощью Java-апплета.
От: Blazkowicz Россия  
Дата: 02.06.09 13:44
Оценка: +1
Здравствуйте, dudkaman, Вы писали:

D>У меня есть джава-апплет, который должен иметь доступ к каталогу с файлами, который находится в той же папке, что и апплет. Когда я запускал апплет на своей машине, всё работало корректно. Список файлов получался следующим образом:

D>String[] files = new File("files").list();
D>Когда я попробовал поместить этот апплет и каталог на сервер и запустить, то прилетает NullPointerException.
D>Разрешима ли эта задача вообще? И если да, то как её решить.
Апплет исполняется на клиенте!!! java.io.File работает с файловой системой той машины на которой запущен апплет. Т.о. через java.io.File к серверу достучатся не возможно.
Re[2]: Доступ к web-каталогу с помощью Java-апплета.
От: dudkaman Россия  
Дата: 02.06.09 13:46
Оценка:
Здравствуйте, Blazkowicz, Вы писали:

B>Апплет исполняется на клиенте!!! java.io.File работает с файловой системой той машины на которой запущен апплет. Т.о. через java.io.File к серверу достучатся не возможно.


Ok, тогда как это можно сделать? Ну то есть мне нужен список файлов на http-сервере. Как мне его получить
Re: Доступ к web-каталогу с помощью Java-апплета.
От: KRA Украина  
Дата: 02.06.09 13:47
Оценка:
Здравствуйте, dudkaman, Вы писали:

D>Когда я попробовал поместить этот апплет и каталог на сервер и запустить, то прилетает NullPointerException.

D>Разрешима ли эта задача вообще? И если да, то как её решить.

java.io.File работает с файлами локальной файловой системы. Соотвественно, когда запускаете appleteviewer-ом, то файлы видны. Для доступа же к серверу java.io.File не годиться, нужно работать по http. Самый простой способ с использованием только стандарнтых вещей это servlet который возвращает список файлов по запросу, а из аплета это вызывать через java.net.URL
Re[3]: Доступ к web-каталогу с помощью Java-апплета.
От: Blazkowicz Россия  
Дата: 02.06.09 13:52
Оценка:
Здравствуйте, dudkaman, Вы писали:

D>Ok, тогда как это можно сделать? Ну то есть мне нужен список файлов на http-сервере. Как мне его получить

Попробуй объяснить суперзадачу — а зачем это понадобилось? Я бы вообще через classpath ресурсы вытягивал.
Re[2]: Доступ к web-каталогу с помощью Java-апплета.
От: dudkaman Россия  
Дата: 02.06.09 13:53
Оценка:
Здравствуйте, KRA, Вы писали:

KRA>java.io.File работает с файлами локальной файловой системы. Соотвественно, когда запускаете appleteviewer-ом, то файлы видны. Для доступа же к серверу java.io.File не годиться, нужно работать по http. Самый простой способ с использованием только стандарнтых вещей это servlet который возвращает список файлов по запросу, а из аплета это вызывать через java.net.URL


А просто как-нибудь обратиться по http из апплета никак?
Re[4]: Доступ к web-каталогу с помощью Java-апплета.
От: dudkaman Россия  
Дата: 02.06.09 13:55
Оценка:
Здравствуйте, Blazkowicz, Вы писали:

D>>Ok, тогда как это можно сделать? Ну то есть мне нужен список файлов на http-сервере. Как мне его получить

B>Попробуй объяснить суперзадачу — а зачем это понадобилось? Я бы вообще через classpath ресурсы вытягивал.

Задача вообще говоря, не сложная. Просто есть проигрыватель, который читает звуковые файлы из каталога на сервере. Ну и нужно их прочитать.

По поводу использования classpath можно поподробнее?
Re[3]: Доступ к web-каталогу с помощью Java-апплета.
От: KRA Украина  
Дата: 02.06.09 13:56
Оценка:
Здравствуйте, dudkaman, Вы писали:

D>А просто как-нибудь обратиться по http из апплета никак?


Куда уж проще Приблизительно так, но надо добавить обработку ошибок
 URL url = new URL("http://mycompany.com/myapp/files");
 BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));

 String str;
 while((str = in.readLine()) != null) {
   ...
 }
Re[5]: Доступ к web-каталогу с помощью Java-апплета.
От: Blazkowicz Россия  
Дата: 02.06.09 14:15
Оценка:
Здравствуйте, dudkaman, Вы писали:

D>Задача вообще говоря, не сложная. Просто есть проигрыватель, который читает звуковые файлы из каталога на сервере. Ну и нужно их прочитать.

Список файлов я бы передавал параметром апплета. Просто врендеривал их в страницу.

D>По поводу использования classpath можно поподробнее?

Установить CODE base и потом AppletClass.class.getResourceAsStream()
Re[6]: Доступ к web-каталогу с помощью Java-апплета.
От: dudkaman Россия  
Дата: 02.06.09 15:08
Оценка:
Здравствуйте, Blazkowicz, Вы писали:

B>Список файлов я бы передавал параметром апплета. Просто врендеривал их в страницу.


так и здесь, если не трудно, поподробнее, как их врендерить?)

B>Установить CODE base и потом AppletClass.class.getResourceAsStream()


я правильно понимаю, что codebase нужно передать в качестве параметра, что-то типа

<applet code="..." codebase="." ..../>

или это совсем не о том?
Re[7]: Доступ к web-каталогу с помощью Java-апплета.
От: Blazkowicz Россия  
Дата: 02.06.09 15:45
Оценка:
Здравствуйте, dudkaman, Вы писали:

B>>Список файлов я бы передавал параметром апплета. Просто врендеривал их в страницу.

D>так и здесь, если не трудно, поподробнее, как их врендерить?)

Страницу, на которой распологается апплет, сделать не статичным HTML, а формировать динамически. PHP, JSP, Velocity.
Таким образом HTML будет вида
<applet...>
   <parameter id="filenames" value="track01.mp3,track02.mp3"/>
</applet>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.