Flash SWF на Solaris не загружается при загрузке библиотеки Apache APR в JBoss - PullRequest
0 голосов
/ 24 января 2011

ОБНОВЛЕНИЕ + РЕШЕНИЕ ======================================

Извините, что выкладываю решение здесьвместо комментариев, но что-то в фильтрации моей работы не позволяет мне работать с комментариями.

В итоге я использовал свойство -b 0.0.0.0 в jboss для привязки ко всем адресам, поэтомуЯ мог бы попытаться получить доступ к серверу машины A с машиной B в качестве клиента, и наоборот.Я обнаружил, что он всегда не загружался при работе на машине B, независимо от того, подключался я с A или B.

Я запустил wireshark на машине с Windows в той же сети и обнаружил соединение TCP, которое былозагрузка веб-страницы.Я видел, что запрос на .swf в тех случаях, когда он терпел неудачу, имел длину контента около 2 миллионов или около того, и когда я щелкал правой кнопкой мыши журналы wireshark и выбрал «просмотреть беседу» или что-то в этом роде, размер всего разговорачтобы получить .swf файл был только 130 000.Глядя на about: cache, он был примерно равен тому, что заканчивалось кэшированием, прежде чем сказать «Done» на странице.

Я обнаружил, что есть ошибка со свойством useSendFile.(http://community.jboss.org/thread/148651?tstart=0). Это заставляет его отправлять только часть файла, если у вас недостаточно памяти ядра. Использование useSendFile = "false" в нашем server.xml, похоже, решило проблему.

==================================================

Исходная проблема

У меня есть сервер приложений JBoss (5.1.0.GA). Я использую GraniteDS для соединения между сервером приложений и клиентом. На стороне клиента используется флэш-память.

Granite DS требует использования библиотеки APR (нативная библиотека apache), поэтому я загружаю ее. Я вижу в журналах JBoss, что в ней написано, что она прекрасно загружала нативную библиотеку apache (версия 1.18, хотя я такжепробовал 1.20).

Проблема в том, что когда у меня так получается, что библиотека APR загружается успешно, то сторона приложения Flash обычно не загружается. Мне придется нажимать на обновление несколько раз и в конце концовобычно он загружается, но обычно я вижу либо черную веб-страницу с надписью «Готово», либо индикатор выполнения загрузки никогда не двигается.повторное нажатие кнопки «Обновить» приведет к загрузке страницы.В конечном итоге он будет загружаться при нажатии кнопки «достаточно обновить», но это не согласовано, и это, очевидно, не будет работать для наших клиентов, которым приходится каждый раз очищать кэш браузера.

Эта проблема существует только в Solaris, наше приложение работает нормальнона винде.Мы перепробовали несколько уровней патчей для Solaris и с помощью команды "ldd" убедились, что библиотека, которая должна быть загружена, имеет все свои зависимости.

Мы убедились, что это не наш swfРазмер файла путем тестирования: 1) Наш обычный SWF (1660 кб).2) Случайный SWF-файл большого размера (950 кб).3) Небольшой SWF-файл с одним компонентом метки с надписью «Test» (277 КБ).

Все 3 не смогли загрузить, когда JBoss также загружал собственную библиотеку, и загружались без нее без проблем.Нам нужна собственная библиотека для успешной загрузки, чтобы Granite мог соединиться между клиентом и сервером, поэтому не загружать ее нельзя (если нет способа использовать соединитель NIO с JBoss, но он кажется неподдерживаемым) ....если есть способ использовать разъем NIO, тогда нам не нужна библиотека APR.

Кто-нибудь сталкивался с этим раньше?У кого-нибудь есть идеи или рекомендации?

1 Ответ

0 голосов
/ 25 января 2011

Вы пробовали собственные библиотеки jboss для Solaris?

http://www.jboss.org/jbossweb/downloads/jboss-native-2-0-9.html

...