|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Nov 2010
Сообщений: 1
|
у меня возникла проблема при использовании Java сервлетов и Flex.
При написании приложения обнаружил вот что, после того как выложил его на сервер сервлеты для тестирования, флекс ролик не конектится с сервлетом (ролик находится на моем компе), который уже находится в сети (локально все работало). Потом решил протестировать все это на простом приложении. Создал сервлет, который возвращает всегда только out.println("<h1>Соединение прошло успешно Java</h1>"); Выложил его в сеть. Ввел его адрес в браузере для проверки, работает. Далее создал простое флекс приложение, которое запрашивает этот сервлет и выводит его в текстовом поле. Скомпилировал, запустил, работает. Но если перенести флекс приложение из папки куда оно компилируется в любую другую, перестает работать (мне известно, что в режиме разработки флекс приложения игнорируют все разрешения, права, песочницы). Очевидно, что здесь проблема с безопасностью. Ну конечно я сразу вставил в параметры компилятора -use-network=true не помогло затем в текст флекс приложения добваил flash.system.Security.allowDomain("http://***:8084"); не помогло вставил Security.loadPolicyFile("http://***:8084/tsrv/crossdomain.xml"); Сам crossdomain.xml на сервере содержит <?xml version="1.0"?> <!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd"> <cross-domain-policy> <allow-access-from domain="*" secure="false"/> <site-control permitted-cross-domain-policies="all"/> <allow-http-request-headers-from domain="*" headers="*"/> </cross-domain-policy> тоже не помогло Никаких ошибок приложение не выдает, просто долго ждет ответа от серверной части, а потом будто молча сбрасывает его. Уверен на 90%, что все дело в настройках безопасности флекс приложения, также возможно (на 10%) дело в безопасности сервера (tomcat или apache). Но вот что не так, не знаю. Если кто знает, что это за проблема, и где можно почитать о ее решение, буду рад помощи. |
|
|||||
Регистрация: Nov 2010
Сообщений: 21
|
Написал сервер и клиента. При взаимодействии происходит следующее:
1) Клиент подключается к серверу 2) Клиент цепляется к порту 843 посылает <policy-file-request/> 3) Не получает ответа и цепляется с тем же запросом к указанному для подключения порту. 4) В ответ сервер отправляет сообщение вида: Код: <?xml version="1.0"?> <!DOCTYPE cross-domain-policy SYSTEM "htp://www.adobe.com/xml/dtds/cross-domain-policy.dtd"> <cross-domain-policy> <allow-access-from domain="*" to-ports="5555-9999" /> </cross-domain-policy> (Внутри сервера к этому сообщению прицепляется "\0") 5) После чего клиент отключается и не переподключается. Либо я косячу с файлом политики безопасности, либо не знаю что. К слову, если тестирую клиентское приложение внутри студии, то все работает в порядке (правда тогда он не просит файл политики безопасности). Добавлено через 19 часов 27 минут Все, господа! Проблема решена. Оказывается надо было просто к файлу политики безопасности прибавлять не "\0" и не '\0', а "\u0000". |
Часовой пояс GMT +4, время: 10:29. |
|
« Предыдущая тема | Следующая тема » |
Теги |
java , security error , socket |
|
|