java flex security jboss blazeds

java - Problema Client.Error.MessageSend con Flex/BlazeDS en JBoss



security (2)

Si navega a http: //your.application.root/crossdomain.xml , ¿se carga el archivo? La configuración más simple es poner el archivo en la raíz del dominio.

Estoy desarrollando una aplicación Flex 3.4 que interopera con un backend Java EE que se ejecuta en un servidor JBoss-4.2.2, a través de la versión más reciente de BlazeDS. Cuando ejecuté la aplicación Flex de Flash Builder 4 beta 2 en Tomcat, todo estaba bien, la aplicación Flex fue capaz de hacer la llamada remota necesaria. Pero mi entorno de producción está en JBoss, y cuando moví la aplicación a JBoss (con services-config.xml actualizado para que se ajuste a JBoss), la aplicación Flex sigue quejándose de Client.Error.MessageSend sobre llamadas remotas. Al principio, cuando implementé manualmente la aplicación en JBoss, el faultDetail fue "Channel.Security.Error error Error #2048 ... " ; más tarde traté de ejecutar la aplicación desde Flash Builder, y luego faultDetail se convirtió en "Channel.Connect.Failed error NetConnection.Call.BadVersion" .

En services-config.xml, bajo <security> , estaba:

<login-command class="flex.messaging.security.TomcatLoginCommand" server="Tomcat"/>

cuando me mudé a JBoss, lo actualicé a:

<login-command class="flex.messaging.security.TomcatLoginCommand" server="JBoss"/>

Tengo un crossdomain.xml colocado en la carpeta de implementación de JBoss, de la siguiente manera:

<?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>

Pero parece que no funciona. También intenté poner crossdomain.xml en la carpeta deploy / xxxxx.war, y el problema persiste.

Estoy usando http: //, no https: //, así que supongo que no se trata de un canal de seguridad.

Intenté buscar una solución, pero la mayoría de las soluciones estaban relacionadas con PHP, lo que no fue de mucha ayuda. ¿Alguien tiene alguna pista?


Tienes

<login-command class="**flex.messaging.security.TomcatLoginCommand**" server="Tomcat"/>

Cuando la clase indique que la seguridad es de Tomcat, debe cambiarla a una clase que implemente la interfaz flex.messaging.security.LoginCommand o cualquier interfaz de seguridad.