|
0 / 0 / 0
Регистрация: 30.09.2009
Сообщений: 57
|
|
Синхронизация responce в сервлете13.06.2011, 18:08. Показов 4793. Ответов 36
Метки нет (Все метки)
Всем привет!
Имею сервлет. Когда тестил на страницах, содержащих одно обращение к сервлету - типа get или post в форме или через href - все нормально. Сделал страницу, на которой есть пара images, данные для которых посылает тот же сервлет, так начались проблемы: изображения путаются, приходят не в том порядке, или страница показывается пустой. Сделал сервлет implements SingleThreadModel - не помогло. Подскажите, pls, какие в подобных случаях применяют решения ? Заранее спасибо. Константин.
0
|
|
| 13.06.2011, 18:08 | |
|
Ответы с готовыми решениями:
36
Ошибка при возврате List в responce SOAP Модуль EVO II синхронизация 50гц, На какой ножке контроллера синхронизация шим двигателя? Навигация в сервлете |
|
0 / 0 / 0
Регистрация: 04.05.2010
Сообщений: 124
|
|
| 15.06.2011, 14:27 | |
|
я явно не въезжаю в логику, но какой смысл формировать объект в функции и не возвращять его?
ну да ладно. тут такое дело: String fileName = (String) m_params.get('file'); у тебя RequestProcessor, из которого берутся параметры, является полем сервлета. т.е. его разделяют все потоки, создаваемые при запросах. поэтому каждый новый поток (запрос) сетит его по-своему. из-за этого могут быть траблы
0
|
|
|
paradise
|
||||||
| 15.06.2011, 14:38 | ||||||
|
Souljah:
|
||||||
|
paradise
|
|
| 15.06.2011, 14:40 | |
|
Автор:
Покажи как ты запрашивашь картинку у этого сервлета. Только я тебя очень прошу - покажи только нужные места и используй [*code] [*/code] |
|
|
0 / 0 / 0
Регистрация: 04.05.2010
Сообщений: 124
|
|
| 15.06.2011, 14:40 | |
|
private RequestProcessor m_rp = null;
он - поле сервлета, патамушто афтар объявил его как поле сервлета в логике мне не откажешь, правда?
0
|
|
|
paradise
|
|
| 15.06.2011, 14:46 | |
|
Да. Тут я протупил.
|
|
|
paradise
|
|
| 15.06.2011, 14:57 | |
|
Souljah:
>у тебя RequestProcessor, из которого берутся параметры, является полем >сервлета. т.е. его разделяют все потоки, создаваемые при запросах. >поэтому каждый новый поток (запрос) сетит его по-своему. >из-за этого могут быть траблы Да, проблемы могут быть. Но афтар писал, что использовал SingleThreadModel и не полегчало. Хотя в этом случае, потоки не будут влиять на RequestProcessor других потоков. |
|
|
0 / 0 / 0
Регистрация: 30.09.2009
Сообщений: 57
|
|||||||||||
| 15.06.2011, 15:28 [ТС] | |||||||||||
|
Во-первых, спасибо всем.
Запрашиваю картинку, к примеру, так:
0
|
|||||||||||
|
paradise
|
|
| 15.06.2011, 16:39 | |
|
Попробуй сделать метод lookupPage синхронизированным. Это поможет понять : проблема в многопоточности или нет.
|
|
|
0 / 0 / 0
Регистрация: 30.09.2009
Сообщений: 57
|
|
| 15.06.2011, 16:56 [ТС] | |
|
Попробую. Интересное кино - сделал RequestProcessor m_rp переменной
в функции lookupPage, а не мембером класса: полегчало с картинками!!! Осталась другая проблема: у меня есть html-таблица неких найденных документов, которые я и показываю на странице. Перемещаюсь по табле, {посылаю сервлету http://localhost:8080/usf_sm/nextSearchRes/, к примеру} и через раз вместо всей страницы с картинками, таблицей и т.п. вижу просто <html><body></body></html>, то есть пустоту. Выводил в out в окне Resin'a генерируемую на этот запрос страницу в html-виде - все есть ! А в браузере - белый экран, как говорится...В чему тут может быть дело, а ?
0
|
|
|
0 / 0 / 0
Регистрация: 04.05.2010
Сообщений: 124
|
|
| 15.06.2011, 17:45 | |
|
Значит проблема была в многозадачности
от использования SingleThreadModel может и не полегчать - он deprecated и вообще хз как работает
0
|
|
|
paradise
|
|
| 15.06.2011, 18:12 | |
|
>Значит проблема была в многозадачности от использования
>SingleThreadModel может и не полегчать - он deprecated и вообще хз как >работает. Никак он не работает Он говорит контейнеру, что этот сервлет следует инстанцировать для каждого запроса, а контейнер работает. Понятное дело, что никаких гарантий нет.
|
|
|
mishgun
|
|
| 17.06.2011, 20:00 | |
|
по поводу второй проблемы.Скопируй свой вывод в ноутпад сохрани как хтмл и посари будет хтмл или нет.А вообще то генерить хтмл в сервлете не есть гуд идея.для етого падонки из Сан jsp забацали
)))
|
|
|
mishgun
|
|
| 17.06.2011, 20:01 | |
|
сорри не закончил мысль а ручонки шаловливые уже на отправить нажали
))Смысл насчет копирования в том что у тебя может хтмл генерится с неправильным кодом вот и не показывается |
|
|
0 / 0 / 0
Регистрация: 30.09.2009
Сообщений: 57
|
|
| 19.06.2011, 18:28 [ТС] | |
|
Сохранил все генерируемые html'и в файл. Все правильно ! А в браузере -
<html><body></body></html>.... С чего это может быть ?
0
|
|
|
1 / 1 / 0
Регистрация: 12.06.2011
Сообщений: 68
|
|
| 19.06.2011, 23:06 | |
|
>>как вы предлагаете 'выдать' картинку из базы, и в чем эта
>>песня 'другая'? У меня, например, весь вывод обычно идет через xml + xsl. База обычно Oracle, который может хранить изображения как внутри себя, так и снаружи. А можно вообще хранить только имена файлов/картинок. Соответственно, в xml записываются только имена файлов/картинок, а сами изображения хранятся на диске, а не в 'базе', хотя это хранилище в общем случае можно считать частью БД. Если нагрузка на сервер велика (5 - 20млн. страниц в день), выйгрышь за счет исключения операции по извлечению изображения из базы может быть достаточно существенным (материально это несколько недешевых серверов).
0
|
|
|
0 / 0 / 0
Регистрация: 30.09.2009
Сообщений: 57
|
||||||
| 20.06.2011, 10:46 [ТС] | ||||||
|
Хтмл выводится с помощью такого класса в функции generate():
0
|
||||||
|
0 / 0 / 0
Регистрация: 30.09.2009
Сообщений: 57
|
|
| 20.06.2011, 10:49 [ТС] | |
|
блин, два раза запостил...
А не может Resin подглючивает (?)
0
|
|
| 20.06.2011, 10:49 | |
|
Помогаю со студенческими работами здесь
37
Ошибка в сервлете Ошибка в сервлете Сессия в сервлете) GUI в Сервлете
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
|
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|