Я разрабатываю приложение Flex 3.4, которое взаимодействует с бэкэндом Java EE, работающим на сервере JBoss-4.2.2, через самый последний выпуск BlazeDS. Когда я запустил приложение Flex из Flash Builder 4 beta 2 на Tomcat, все было в порядке, приложение Flex смогло сделать необходимый удаленный вызов. Но моя производственная среда находится на JBoss, и когда я переместил приложение на JBoss (с обновленным файлом services-config.xml для соответствия JBoss), приложение Flex продолжает жаловаться на Client.Error.MessageSend при удаленных вызовах.
Сначала, когда я вручную развернул приложение на JBoss, faultDetail был "Channel.Security.Error error Error #2048 ... "
; позже я попытался запустить приложение из Flash Builder, и тогда faultDetail стал "Channel.Connect.Failed error NetConnection.Call.BadVersion"
.
В services-config.xml в разделе <security>
было:
<login-command class="flex.messaging.security.TomcatLoginCommand" server="Tomcat"/>
При переходе на JBoss я обновил его до:
<login-command class="flex.messaging.security.TomcatLoginCommand" server="JBoss"/>
У меня есть crossdomain.xml, помещенный в папку развертывания JBoss, следующим образом:
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy
SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*" />
</cross-domain-policy>
Но, похоже, это не работает. Я также попытался поместить crossdomain.xml в папку deploy/xxxxx.war, и проблема осталась.
Я использую http://, а не https://, поэтому я думаю, что это не канал безопасности.
Пытался найти решение, но большинство решений были связаны с PHP, что не очень помогло. У кого-нибудь есть какие-нибудь подсказки?
2 ответа
У тебя есть
<login-command class="**flex.messaging.security.TomcatLoginCommand**" server="Tomcat"/>
Если класс указывает, что безопасность принадлежит tomcat, вы должны изменить его на класс, который реализует интерфейс flex.messaging.security.LoginCommand или любой другой интерфейс безопасности.
Если вы переходите на http://your.application.root/crossdomain.xml, загрузка файла? Самая простая конфигурация — поместить файл в корень домена.
http://{server.name}:{server.port}/{context.root}/
.
Похожие вопросы
Новые вопросы
java
Java — это высокоуровневый объектно-ориентированный язык программирования. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег часто используется вместе с другими тегами для библиотек и/или фреймворков, используемых разработчиками Java.