Flex Blazeds + Spring 3 연동시 Flex RemoteObject 설정

|

Flex Remote Object 설정

    <fx:Declarations>
        <s:RemoteObject id="re" destination="ShmObj">
            <s:channelSet>
                <s:ChannelSet>
                    <s:AMFChannel uri="http://hostname/messagebroker/amf"/>
                </s:ChannelSet>
            </s:channelSet>
            <s:method name="getObject" fault="fltEvent(event)" result="rltEvent(event)">
                <s:arguments>
                    <Name>
                        {paramName}
                    </Name>
                </s:arguments>
            </s:method>
        </s:RemoteObject>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>

tomcat + spring 3 + blazeds 연동 설정이 끝났을 경우 어노테이션 기반 코딩을 할 것이다.

Service 등록과 amf채널 설정이 끝났는데 Flex에서 값을 실제 Service 되는 곳에서 받아 오고 싶을 경우 위와 같이 채널을 지정해 버리면 된다.

그런데 이 경우 보안 문제로 Reslt 가 아닌 Fault를 뱉어 낼 것이다.

이 경우 crossdomain을 설정해 주면 되는데


호스팅이 되는 root에 crossdomain.xml을 등록해 줘야 된다.


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">

<cross-domain-policy>
 <site-control permitted-cross-domain-policies="all"/>
 <allow-access-from domain="*"/>
</cross-domain-policy>


이렇게 하면 보안상에 문제가 되겠지만(?) 값을 확인해서 받아 볼 수 있다.

잘 돌아간다 판단 되면 Flex를 서버에서 돌아가는 형식으로 다시 전환후 배포해 보쟈!

문제가 되지 않느다 판단되면 그냥 계속 사용해도 문제 없겠다.


And