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


Автор: Lonkly 20.8.2010, 23:47
Доброго времени суток, господа! Гуглил уже пол дня, и все никак не могу найти вменяемое объяснение, как же правильно вставить апплет в jsp страницу. В принципе, без всяких наворотов мне достаточно, чтобы было так:
Код:
view source
print?
    
Код

<APPLET CODE="UploaderApplet.class" WIDTH=600 HEIGHT=400>
        <PARAM NAME=USER VALUE="${user.id}">
        <PARAM NAME=ALBUM VALUE="${album.id}">
    </APPLET>


На крайняк <jsp:plugin , да хоть как нибудь!
Но никак не находится класс.
Структура веб приложения следующая:
http://code.google.com/a/eclipselabs.org/p/giftfreek/source/browse/#svn/trunk/project/GIFTFreeK
А вот сам апплет
http://code.google.com/a/eclipselabs.org/p/giftfreek/source/browse/#svn/trunk/project/GIFTFreeK/src/applic/applet
Использую Eclipse, jdk 1.6, tomcat 6.

Вопрос: как же все-таки правильно вставить его, чтобы не было ClassNotFound Где он должен быть и какой при этом должен быть Codebase и Code? Заранее большое спасибо!

Автор: lazycat 21.8.2010, 13:40
В принципе апплету по барабану, находится он в Web-приложении или просто в HTML-странице. В Вашем случае проблема, вероятно, в том, что браузер не знает, куда обращаться за апплетом. Укажите каталог, в котором находится файл класса с помощью аттрибута codebase.

Автор: Lonkly 21.8.2010, 14:34
Дык указываю! Все время утверждает, что ClassNotFound. 
Собственно, причина, наверное, в том, что я не знаю где он конкретно находится у меня на сервере. 
http://localhost:8080/GIFTFreeK/ а дальше?

Автор: lazycat 22.8.2010, 03:43
Цитата(Lonkly @  21.8.2010,  14:34 Найти цитируемый пост)
Дык указываю! Все время утверждает, что ClassNotFound. 
Собственно, причина, наверное, в том, что я не знаю где он конкретно находится у меня на сервере. 


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

Советую Вам сделать следующее.
1. Найти файл UploaderApplet.class (если Вы его скомпилировали, то найти наверняка сможете).
2. Найдите "корневой каталог документов" Вашего сервера. (тот, к которому будет обращение по адресу http://yourserver.com). 
3. Придумайте, куда положить файл UploaderApplet.class (он должен лежать в одном из каталогов корневого каталога документов).
4. Убедитесь, что этот каталог на самом деле доступен. Например, сделайте быстренько простейший html-файл, запишите его в этот каталог и обратитесь к нему из браузера, например, http://yourserver.com/myapplets/test.html
5. Скопируйте туда аппет UploaderApplet.class
6. Измените тэг, который Вы приводили в первом посте примерно так:
<APPLET codebase="http://yourserver.com/myapplets/" CODE="UploaderApplet.class" WIDTH=600 HEIGHT=400>
        <PARAM NAME=USER VALUE="${user.id}">
        <PARAM NAME=ALBUM VALUE="${album.id}">
    </APPLET>
Обратите внимание, что в codebase указывается каталог, в которм лежит файл класса, а в code - сам файл класса.
7. Откройте Ваш JSP-файл в браузере.
8. Если не открывается, уберите тэг, вставьте какой-нибудь текст (например <h1> ...  </h1>) и снова откройте JSP-файл. Найдите и устраните ошибку.
9. Вертите тэг <APPLET  ...
10. Откройте JSP-файл в браузере.
11. Если и в этом случае браузер не найдет UploaderApplet.class - зовите шамана, программисты бессильны.    smile 

Успехов

Добавлено через 3 минуты и 11 секунд
Вдогонку.

А вообще-то советую потихоньку отказываться от апплетов. В проекте HTML 5 тэг APPLET уже удален

Автор: Lonkly 22.8.2010, 11:58
Большое вам спасибо за совет. Всенепременно попробую сделать пошагово и разобраться с томкатом. А вот на счет html5... А как же мне еще сделать, допустим, тот же загрузчик фотографий на сайт? Или любое другое мини-приложение/виджет? 

Автор: lazycat 22.8.2010, 22:06
Цитата(Lonkly @  22.8.2010,  11:58 Найти цитируемый пост)
А как же мне еще сделать, допустим, тот же загрузчик фотографий на сайт?


То, что я сказал - не значит, что прямо завтра апплеты перестанут поддерживаться. Думаю, что ими еще можно будет долго играться. Я сам сторонник апплетов, мне очень жаль, что у них такая судьба. 
Что касается активных элементов на стороне клиента - думаю, надо в будущем ориентироваться на технологии, основанные на JavaScript. Самой многообещающей мне кажется GWT.

Добавлено через 4 минуты и 24 секунды
Цитата(Lonkly @  22.8.2010,  11:58 Найти цитируемый пост)
Всенепременно попробую сделать пошагово и разобраться с томкатом


Вы Tomcat используете? Тогда и разбираться особенно нечего. Бросайте файл класса апплета в <tomcat>/webapps/ROOT, пишите codebase="http://yourserver.com/" и все должно работать.

Автор: Lonkly 24.8.2010, 03:52
Странно. Вообще ничего не происходит с этим ROOT'oм. Боюсь дело в Томкате. Я запускаю его из под эклипса и не вижу чтобы он вообще хоть какие-то файлы делал доступными куда не кидай их...

А когда пытаюсь вручную включить http://localhost:8080/ недоступен.

Автор: lazycat 24.8.2010, 13:36
Цитата(Lonkly @  24.8.2010,  03:52 Найти цитируемый пост)
Я запускаю его из под эклипса и не вижу чтобы он вообще хоть какие-то файлы делал доступными куда не кидай их...


Я стараюсь использовать Eclipse, NetBeans и иже с ними только тогда, когда я полностью понял, как технология работает и могу делать руками именно то, что я хочу.
IMHO IDE ускоряют работу, но в отместку за это прячут все, что только можно спрятать. Я советую отказаться от Eclipse до тех пор, пока все не станет ясно.

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