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를 서버에서 돌아가는 형식으로 다시 전환후 배포해 보쟈!
문제가 되지 않느다 판단되면 그냥 계속 사용해도 문제 없겠다.