![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Wanderer2019 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 937 Регистрация: 3.12.2004 Где: Санкт-Петербург/П рага Репутация: нет Всего: 17 |
уже писал по данной теме... у меня такая ситуация: имеется два сервлета. Сервлет №1 - сервлет для чтения информации из БД. Сервлет №2 - сервлет, который выводит некое summary по проекту (использует инф. из Сервлет №1). Так же имеются 2 апплета, которые пользуются данными из Сервлет №1. Вопрос: в Сервлет №2 не грузятся апплеты путем out.println("<applet></applet>").Почему?
|
|||
|
||||
| Oracle |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 96 Регистрация: 26.11.2004 Репутация: 1 Всего: 3 |
Он в сервлете только генерит хтмл -- простой текстовфй файл... потом возвращает его твоему браузеру... а вот он уже и должен запрашивать твой любимый апплет. Никак не иначе.
Попробуй: out.println("<html><body><applet src="..."></applet></body></html>"); |
|||
|
||||
| Wanderer2019 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 937 Регистрация: 3.12.2004 Где: Санкт-Петербург/П рага Репутация: нет Всего: 17 |
вот и проблема!!! похоже браузер не находит доп библиотеку которую я ему там указываю (Chart2D.jar - для рботы с графиками). поэтому просто выводит два серых квадрата на местах где должны были бы быть мои апплеты. хотя когда я просто перекидываю хтмл строки, сгенерированные моим сервлетом в новый хтмл, то все работает. Как же сделать так, чтобы апплеты грузились по автомату в момент работы моего сервлета???
P.S: а разве в <applet> есть параметр src??? а как же code, codebase?? Добавлено @ 20:44 доп библиотеку указываю в <applet.......><param .....></applet> |
|||
|
||||
| Oracle |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 96 Регистрация: 26.11.2004 Репутация: 1 Всего: 3 |
В <applet code=...> это я так.........не то написал про src
Если проблема в доп. библиотеке: param к библиотекам не имеет никакого отношения, там просто аргументы и значения... Запихни эту библиотеку в .jar твоего апплета. А вообще, попробуй сделать простенький апплет, без всяких библиотек.........Посмотри все ли проходит хорошо...... Это сообщение отредактировал(а) Oracle - 28.12.2004, 21:18 |
|||
|
||||
| Wanderer2019 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 937 Регистрация: 3.12.2004 Где: Санкт-Петербург/П рага Репутация: нет Всего: 17 |
без внешних библиотек все работает нормально, как только подкл. доп jar он его не цепляет.
|
|||
|
||||
| Oracle |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 96 Регистрация: 26.11.2004 Репутация: 1 Всего: 3 |
Доп. библиотеку засунь в .jar твоего апплета(чтобы они в одном .jar находились)
|
|||
|
||||
| Wanderer2019 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 937 Регистрация: 3.12.2004 Где: Санкт-Петербург/П рага Репутация: нет Всего: 17 |
а как потом обратиться к классу? в хтмл.
|
|||
|
||||
| Oracle |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 96 Регистрация: 26.11.2004 Репутация: 1 Всего: 3 |
Всмысле, к классу??К какому классу??К классу апплета??Ты должен сделать манифест файл(файл описания в .jar) и через хтмл обращаться к .jar, а тот по файлу описания найдет правильный класс, который нужно запускать для того, чтобы апплет начал работать, а сам апплет(ты его должен будешь немного изменить) в этом же .jar найдет нужную библиотеку....
|
|||
|
||||
| Wanderer2019 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 937 Регистрация: 3.12.2004 Где: Санкт-Петербург/П рага Репутация: нет Всего: 17 |
okay!!! спасибо!!! но теперь два апплета одновременно не грузятся...
а по одному работают нормально |
|||
|
||||
| Oracle |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 96 Регистрация: 26.11.2004 Репутация: 1 Всего: 3 |
Во-первых: у тебя второй апплет не помещается в jar?? Не вижу в теге <applet> archive=.....
Во-вторых: а у тебя второй апплет тоже работает с доп. библиотекой? P.S трудно разбираться, когда не видишь всей картины... Это сообщение отредактировал(а) Oracle - 29.12.2004, 14:47 |
|||
|
||||
| Wanderer2019 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 937 Регистрация: 3.12.2004 Где: Санкт-Петербург/П рага Репутация: нет Всего: 17 |
да с той же самой что и 1-й. т.е. они оба находятся в одном jar. таким образом мой jar содержит два апплета и доп библ.
|
|||
|
||||
| Oracle |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 96 Регистрация: 26.11.2004 Репутация: 1 Всего: 3 |
Попробуй заменить второй апплет, каким-нибудь другим простеньким апплетом, который не обращается к потоку, который выдает сервлет.
|
|||
|
||||
| Wanderer2019 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 937 Регистрация: 3.12.2004 Где: Санкт-Петербург/П рага Репутация: нет Всего: 17 |
тогда все впорядке... там и exception каким то образом с HTTPUrlConnection связан. в java console выдает. но не могу понять почему. я вроде везде все connection закрываю.
|
|||
|
||||
| Wanderer2019 |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 937 Регистрация: 3.12.2004 Где: Санкт-Петербург/П рага Репутация: нет Всего: 17 |
для нагладности. сервлет:
принимающие апплеты (код для обоих одинаковый):
ни и далее идет обработка vector.... |
||||
|
|||||
| Oracle |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 96 Регистрация: 26.11.2004 Репутация: 1 Всего: 3 |
А какое исключение выдается?
HTTPConnectionException? Это сообщение отредактировал(а) Oracle - 29.12.2004, 15:41 |
|||
|
||||
| Wanderer2019 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 937 Регистрация: 3.12.2004 Где: Санкт-Петербург/П рага Репутация: нет Всего: 17 |
java.lang.NullPointerException
Добавлено @ 15:51 а если создать второй сервлет, отправляющий информацию (ту же что и первый), то все работает нормально, но тогда получается что для отправки одной и той же информации разным апплетам требуются два сервлета, пусть даже и одинаковых. Нехорошо как то. |
|||
|
||||
| Oracle |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 96 Регистрация: 26.11.2004 Репутация: 1 Всего: 3 |
А можно подробнее?На какой строчке?
Да.....так не хорошо........но хм....NullPointerException это исключение, что ссылка null........... интересно какая ссылка............строчка нужна, где это исключение выбрасывается. Я так думаю, что у тебя во втором апплете InputStream равен null, но хочу узнать подробнее. Это сообщение отредактировал(а) Oracle - 29.12.2004, 15:57 |
|||
|
||||
| Wanderer2019 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 937 Регистрация: 3.12.2004 Где: Санкт-Петербург/П рага Репутация: нет Всего: 17 |
а каа я посмотрю какая строка.. я ж это в Java Console в броузере читаю. А хтмл сервлет генерит. Т строки с апплетами просто добавляюся в виде текста.
Добавлено @ 16:06 тогда получается что сервлет отдал инф первому апплету инфу и отбросил коньки?
|
|||
|
||||
| Oracle |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 96 Регистрация: 26.11.2004 Репутация: 1 Всего: 3 |
Нет....такого быть не может...Можешь сделать так, чтобы второй апплет загружался только тогда, когда первый апплет закрыл все соеденения?(то есть получил обьект Vector)
|
|||
|
||||
| Wanderer2019 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 937 Регистрация: 3.12.2004 Где: Санкт-Петербург/П рага Репутация: нет Всего: 17 |
ты думаешь что они друг у друга пытаются этот вектор стянуть? они же все равно последовательно грузятся а не параллельно
|
|||
|
||||
| Oracle |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 96 Регистрация: 26.11.2004 Репутация: 1 Всего: 3 |
Нет, я не так думаю.
Добавлено @ 16:27 А дальше можешь код привести?первого и второго апплета? |
|||
|
||||
| Wanderer2019 |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 937 Регистрация: 3.12.2004 Где: Санкт-Петербург/П рага Репутация: нет Всего: 17 |
он одинаковый у обоих. есть некоторые различия... первый берет первую половину вектора, а второй вторую. в целом апплет выглядит так:
обработка потока ведется только в той функции, которую я уже выкладывал. Добавлено @ 16:34 в разделе создания графика есть следующая строчка, вызывающая функцию обработки потока:
|
||||
|
|||||
| Oracle |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 96 Регистрация: 26.11.2004 Репутация: 1 Всего: 3 |
Гм.......Когда записываешь через OutputStream то читать можно только один раз через InputStream.....А потом это пропадает
Добавлено @ 16:59 Поэтому когда ты читаешь вторым апплетом, то InputStream будет null, потому что, то , что ты хочешь прочитать уже нету....... P.S ты где-то наверху правильно предположил |
|||
|
||||
| Wanderer2019 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 937 Регистрация: 3.12.2004 Где: Санкт-Петербург/П рага Репутация: нет Всего: 17 |
а как же прочитать в несколько мест?
|
|||
|
||||
| Oracle |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 96 Регистрация: 26.11.2004 Репутация: 1 Всего: 3 |
Два раза писать -- запрос+ответ.
P.S Скажешь о результатах. Это сообщение отредактировал(а) Oracle - 29.12.2004, 17:20 |
|||
|
||||
| Wanderer2019 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 937 Регистрация: 3.12.2004 Где: Санкт-Петербург/П рага Репутация: нет Всего: 17 |
тзвини, но не совсем понял... ты имеешь ввиду в сервлете писать:
т.е. два раза???? |
|||
|
||||
| Wanderer2019 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 937 Регистрация: 3.12.2004 Где: Санкт-Петербург/П рага Репутация: нет Всего: 17 |
ну вообщем сделал так, как написал выше... теперь null не выпадает. Теперь оба апплета либо грузятся бесконечно долго, либо один из апплетов выдает сообщение что то типа HTTP вернула ошибку с кодом 500.
|
|||
|
||||
| Oracle |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 96 Регистрация: 26.11.2004 Репутация: 1 Всего: 3 |
К Сожалению, TCP/IP не позволяет бросать данные двум источникам сразу..
Если так уж надо, то используй UDP -- только он не гарантирует передачу.. Будем делать на высоком уровне.. Нужно не два раза записывать, а два раза отвечать - на каждый запрос в отдельности....То есть сервлет будет на каждый запрос(их будет два, т.к два апплета) два раза отвечать(записывать). Тут нельзя два раза писать(как ты сделал) - поток создаётся на время сеанса между конкретным апплетом и конкретным сервером. Что бы закрепить то, что я сказал словами:
метод doGet переопределен так, что бы принимать любые GET-запросы...... Вот он и записывает каждый раз..... То есть апплет посылает сначала Get-запрос , а потом только читает ответ...И так для каждого апплета, сколько бы их ни было. Это сообщение отредактировал(а) Oracle - 30.12.2004, 14:05 |
|||
|
||||
| Wanderer2019 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 937 Регистрация: 3.12.2004 Где: Санкт-Петербург/П рага Репутация: нет Всего: 17 |
ну вроде что то понял. Только вот как заставить апплет обратиться к сервлету, чтобы тот повторил запрос??
|
|||
|
||||
| Wanderer2019 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 937 Регистрация: 3.12.2004 Где: Санкт-Петербург/П рага Репутация: нет Всего: 17 |
|
|||
|
||||
| Oracle |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 96 Регистрация: 26.11.2004 Репутация: 1 Всего: 3 |
Ты имеешь ввиду, что бы апплет посылал запрос сервлету?
Это как ты хочешь Документация от Sun Пример как делать Http запрос, через Socket А через URLConnection это будет выглядеть примерно так: new URLConnection(new URL("http://localhost?param1=value1¶m2=value2")); P.S сорри, информация идет - работы много |
|||
|
||||
| Wanderer2019 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 937 Регистрация: 3.12.2004 Где: Санкт-Петербург/П рага Репутация: нет Всего: 17 |
ну так я же так и делаю. каждый апплет обращается к сервлету через URLConnection. почему же он не отвечает два раза??
Добавлено @ 15:10 а после первого раза на второй null выкидывает. |
|||
|
||||
| Oracle |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 96 Регистрация: 26.11.2004 Репутация: 1 Всего: 3 |
У тебя сервлет пишет, когда он обрабатывает Get- запрос?
В самом методе обработки Get-запроса? Это сообщение отредактировал(а) Oracle - 30.12.2004, 15:16 |
|||
|
||||
| Wanderer2019 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 937 Регистрация: 3.12.2004 Где: Санкт-Петербург/П рага Репутация: нет Всего: 17 |
да
Добавлено @ 15:19
|
|||
|
||||
| Oracle |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 96 Регистрация: 26.11.2004 Репутация: 1 Всего: 3 |
Такс...
1)Попробуй переслать какую-нибудь String... 2)Проверь - вызывается ли у тебя doGet() два раза....... P.S замени objStream.fluse() на objStream.flush(); P.S.S Честно скажу - если раньше я примерно "понимал" где может быть ошибка, то сейчас - нет... что-то не так происходит,а что - не понятно...Нужно через debug смотреть... |
|||
|
||||
| Wanderer2019 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 937 Регистрация: 3.12.2004 Где: Санкт-Петербург/П рага Репутация: нет Всего: 17 |
попробовал. На каждый реквест со стороны апплета, сервлет отвечает... и все работает хорошо, когда поотдельности, а вот когда они вместе грузятся то одному опять ничего не достается т.к. в этот момент считывает первый апплет!!!
|
|||
|
||||
| Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: нет Всего: 172 |
Так они одновременно пытаются читать? Попытайся добавить в свой сервлет
-------------------- |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Апплеты | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |