duda sobre crossdomain.xml

133 views
Skip to first unread message

menajosep

unread,
Oct 27, 2009, 7:36:32 AM10/27/09
to madeinflex
Buenas,
Estoy desarrollando una aplicación basada en Flex + BlazeDS. Dicha
aplicación debe ejecutarse en un Apache del cliente al que no tengo
privilegios para configurar. La aplicación deberá atender a dos
dominios: www.cliente.intranet y www.cliente.cat, que apuntan al mismo
directorio virtual donde tengo la aplicación desplegada.
Con BlazeDS tengo configurados los channels para un dominio pero no
para el otro. Y cuando trato de ejecutar la aplicación desde el otro
me da error de crossdomain. Sabeis si como puedo configurar la
aplicación para que funcione con los dos dominios a la vez?

alf

unread,
Oct 27, 2009, 11:41:11 AM10/27/09
to madei...@googlegroups.com
hola..
no tengo experiencia con blazeDs, y no por falta de ganas!! pero si
que la tengo con el error crossdomain....
en realidad, la aplicacion no debes configurarla.... debes poner un
archivo llamado crossdomain.xml en la raiz del servidor donde tengas
alojada la pelicula swf que va a hacer las llamadas httpservices o lo
que sea....
de esa manera le dices al swf que acepte datos que provengan del
dominio x o de cualquier dominio..

ejemplos de archivos crossdomain.xml hay por toda la web... lo que
puede ser más confuso es dónde colocarlo....
ya me dirás si es esto lo que preguntas....

adolfo troncoso

unread,
Oct 27, 2009, 11:43:45 AM10/27/09
to madei...@googlegroups.com
men es muy facil

el concepto es este
siempre que se crea una conexion 
le hace una peticion
al default directorio de la puerta
en este caso 80
asi que pone este fichero en 
la carpeta default de tu site
--
Saluda Atentamente,
Adolfo Troncoso Oyarzun
Informatica
HABLAIP S.A.
adolfo....@gmail.cl
http://www.hablaip.com
56 2 750 3800  OPERACIONES
56 2 750 3805  CALLNOW
http://adolfo-troncoso.neurona.com

P Antes de imprimir este correo electrónico piense bien si es necesario hacerlo: El medioambiente es cosa de todos.
ZEN:Entre más se atesora más te desgasta en cuidar. Entre más te preocupas de lo que tienes menos tiempo tienes para disfrutar la vida

Felipe Jara Henriquez

unread,
Oct 27, 2009, 12:38:06 PM10/27/09
to madei...@googlegroups.com
hola amigos del mundo flex, les escribo sobre una consulta de reportes.
mas que nada si flex tiene algún sistema que haga reporte algo así
como cristal reporte
espero respuestas

saludos

Raúl Recalde Alvarez

unread,
Oct 27, 2009, 12:44:30 PM10/27/09
to madei...@googlegroups.com
Hola:
 
Te sugiero que revises "birt" es un excelente reporteador para flex  . Es free y te lo puedes descargar sin problema.
 
Saludos

Jose Mena

unread,
Oct 27, 2009, 12:45:02 PM10/27/09
to madei...@googlegroups.com
esa es mi dificultad, que no tengo acceso a la raíz del apache y solo me dejan colocar los ficheros de mi aplicación en mi contexto. existe alguna posiblidad de decirle al flash que mire en otro sitio?

alf

unread,
Oct 27, 2009, 1:03:36 PM10/27/09
to madei...@googlegroups.com
por lo que sé, necesitas acceder a la raiz...
si descubres otra manera... comunícalo!!

alf

unread,
Oct 27, 2009, 1:04:14 PM10/27/09
to madei...@googlegroups.com
qué son reportes?

Jose Mena

unread,
Oct 27, 2009, 1:11:57 PM10/27/09
to madei...@googlegroups.com
creo que se refiere a informes como los que se generan con jasperreports en java

adolfo troncoso

unread,
Oct 27, 2009, 6:04:36 PM10/27/09
to madei...@googlegroups.com
yo trabaje bajo protocolo y no hay forma
ya que siempre ataca esa ruta
habla con tu proveedor y dile que te ponga el fichero
en el directorio
intenta

Xavi Beumala

unread,
Oct 29, 2009, 11:03:53 AM10/29/09
to madei...@googlegroups.com
Yo plantearia dos soluciones:

1. para cargar un crossdomain en una ruta que no sea el root se puede usar
Security.loadPolicyFile( url ) dond url puede ser cualquier url del estilo
http://www.miservidor.com/mi/carpeta
Esto permitira a FP cargar contenidos sin ninguna violacion de seguridad de
cualquier fichero que se encuentre en mi/carpeta o en cualquiera de sus
hijos.

2. Yo no tendiria a usar un crossdomain para esto. Lo que haria es no
especificar ningun servidor concreto en mi services-config.xml de tal forma
que siempre fueran rutas relativas.

Lo pongo de memoria, pero el enpoint seria algo asi como:
endpoint url="/messagebroker/amfsecure"

De esta forma cuando el swf cuando se cargue desde dom1.com atacara a
dom1.com/messagebroker/amfsecure y desde dom2.com a
dom2.com/messagebroker/amfsecure

HTH
Xavi

>>>>>>> dominios: www.cliente.intranet <http://www.cliente.intranet/> y
>>>>>> www.cliente.cat <http://www.cliente.cat/> , que apuntan al mismo


>>>>>>> directorio virtual donde tengo la aplicación desplegada.
>>>>>>> Con BlazeDS tengo configurados los channels para un dominio pero no
>>>>>>> para el otro. Y cuando trato de ejecutar la aplicación desde el otro
>>>>>>> me da error de crossdomain. Sabeis si como puedo configurar la
>>>>>>> aplicación para que funcione con los dos dominios a la vez?
>>>>>>>
>>>>>>>>>
>>>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Saluda Atentamente,
>>>> Adolfo Troncoso Oyarzun
>>>> Informatica
>>>> HABLAIP S.A.
>>>> adolfo....@gmail.cl

>>>> http://www.hablaip.com <http://www.hablaip.com/>


>>>> 56 2 750 3800  OPERACIONES
>>>> 56 2 750 3805  CALLNOW

>>>> http://adolfo-troncoso.neurona.com <http://adolfo-troncoso.neurona.com/>

Xavi Beumala

unread,
Oct 29, 2009, 11:22:10 AM10/29/09
to madei...@googlegroups.com
Hola Raul,

Genera Birt reportes en formato SWF o los tienes que cargar en un iFrame
solapado?

La generacion es en el server o en client?

Saludos
Xavi

Raúl Recalde Alvarez

unread,
Oct 29, 2009, 12:56:25 PM10/29/09
to madei...@googlegroups.com
Hola Xavi,
 
Los reportes los puedes generar en formato PDF, Word , Excel y algunos otros (no en formato SWF) y se generan del lado del cliente. La verdad , estoy empezando a investigar la herramienta pero ya he generado algunos reportes bastante buenos desde mi aplicación flex. Si quieres generar reportes del lado del servidor podrías utilizar algunos apis de java que permiten hacerlo. Conforme vaya avanzando en la herramienta te iré comentando otras características que pueda encontrar.
 
Saludos,
 
Raúl.

Xavi Beumala

unread,
Oct 29, 2009, 1:07:23 PM10/29/09
to madei...@googlegroups.com
Interesante! Cuando dices que los generas desde el lado cliente te refieres
con una API en AS3 ?

Xavi

Raúl Recalde Alvarez

unread,
Oct 29, 2009, 1:36:03 PM10/29/09
to madei...@googlegroups.com
Así es, desde AS3 lo genero así:
 
ExternalInterface.call("window.open","http://172.16.2.17/birt/output?__report=distributivo1.rptdesign&regional="+cod_regional+"&proceso="+cod_proceso+"&unidad="+cod_unidad+"&jefatura="+cod_jefatura+"&funcionario="+cod_funcionario+"&&__format=pdf&__pageoverflow=1&__overwrite=false","_top");
 
 
Es un ejemplo de un reporte con parámetros que lo envio desde AS3.
 
Saludos

Xavi Beumala

unread,
Nov 2, 2009, 3:18:53 AM11/2/09
to madei...@googlegroups.com
Ah ok :) el tema es que no hay una API de cliente de generacion del report.
Lo que estas haciendo es invocar una url de servidor donde se genera el
report y quizas se muestra...

Muchas gracias!

Xavi

Jose Mena

unread,
Nov 11, 2009, 7:35:58 AM11/11/09
to madei...@googlegroups.com
Hola
Ahora tengo un problema no ya entre dominios, si no entre protocolos.
Ahora tengo la aplicación desplegada en http en un dominio(integración) y https en otro(preproducción).
Si le pongo los endpoint relativos, me da un error porque al construir la url le añade un prefijo http:. La excepción es esta:
ArgumentError: Error #2004: Uno de los parámetros no es válido.  url: 'http:spring/messagebroker/amf'
    at flash.net::NetConnection/connect()
    at mx.messaging.channels::NetConnectionChannel/internalConnect()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\messaging\channels\NetConnectionChannel.as:216]
    at mx.messaging.channels::AMFChannel/internalConnect()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\messaging\channels\AMFChannel.as:264]
    at mx.messaging::Channel/connect()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\messaging\Channel.as:756]
    at mx.messaging::ChannelSet/connectChannel()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\messaging\ChannelSet.as:1325]
    at mx.messaging::ChannelSet/reconnectChannel()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\messaging\ChannelSet.as:1435]
    at flash.utils::Timer/_timerDispatch()
    at flash.utils::Timer/tick()

La configuración que tengo, uso springactionscript, es la siguiente:
<!--    <object id="amfChannel" class="mx.messaging.channels.AMFChannel">-->
<!--      <constructor-arg value="my-amf"/>-->
<!--      <constructor-arg value="spring/messagebroker/amf"/>-->
<!--      <property name="pollingEnabled" value="false"/>-->
<!--    </object>-->
<!---->
<!--    <object id="channelset" class="mx.messaging.ChannelSet">-->
<!--      <method-invocation name="addChannel">-->
<!--        <arg>-->
<!--          <ref>amfChannel</ref>-->
<!--        </arg>-->
<!--      </method-invocation>-->
<!--    </object>-->

    <!-- definimos los diferetes servicios -->
    <object id="remoteObject" class="mx.rpc.remoting.mxml.RemoteObject" abstract="true">
        <property name="endpoint" value="spring/messagebroker/amf" />
        <property name="showBusyCursor" value="true" />
<!--        <property name="channelSet">-->
<!--          <ref>channelset</ref>-->
<!--        </property>-->
    </object>
He probado tanto indicandole el endpoint como el channelset, y ambos.

Se puede evitar que me añada ese prefijo?
Reply all
Reply to author
Forward
0 new messages