ОБНОВЛЕНИЕ + РЕШЕНИЕ ======================================
Извините, что выкладываю решение здесьвместо комментариев, но что-то в фильтрации моей работы не позволяет мне работать с комментариями.
В итоге я использовал свойство -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.
Кто-нибудь сталкивался с этим раньше?У кого-нибудь есть идеи или рекомендации?