Flex 웹 애플리케이션은 RemoteObject 연결을 사용하여 PHP에 맞춤 클래스 객체를 전송합니다. 이 객체에는 여러 깊이 수준이 있으며 기본 깊이 내에 중첩 된 객체가 있습니다. 개체가 아무리 복잡해도 관계없이 허용되는 중첩 수준의 수에 제한이 있습니다. 도착했을 때,이 오류와 함께 데이터 충돌을 보내기 전에 RemoteObject에 의해 직렬화 :RemoteObject와 함께 전송 된 객체에서 중첩 된 레벨 도달
형식 오류 : 오류 # 1034 : 유형 강제 변환에 실패했습니다 mx.messaging.messages.IMessage 도중 7e30f89 @ 객체를 변환 할 수 없습니다.
가벼운 물체를 보내면 (모든 속성을 제거하면) 동일한 현상이 발생합니다. 개체가 적은 수준이
var params:Object = {};
params['test'] = {0:{1:{2:{3:{4:{5:{6:{7:{8:{9:{10:{11:{12:{13:{14:{15:{16:{17:{18:{19:{20:{21:{22:{}}}}}}}}}}}}}}}}}}}}}}}};
remoteObject.runService(params);
경우, 작동 : 예에서
params['test'] = {0:{1:{2:{3:{4:{5:{6:{7:{8:{9:{10:{11:{12:{13:{14:{15:{16:{17:{18:{19:{20:{21:{}}}}}}}}}}}}}}}}}}}}}}};
무엇 보이는 것은은 RemoteObject에 어쩌면, 그 후 (23) (24)의 최대 중첩 수준의 깊이를 수 있다는 것입니다 충돌. JSON에서 보내기는 옵션이 아니므로 기본 객체 내부의 모든 입력 된 클래스와 객체가 손실됩니다.
아무에게도이 문제를 어떻게 해결할 생각이 있습니까? 사전에
감사합니다!
개체 그래프 중첩 수준은 24 개입니까? 영주님. 일반적으로 객체를 웹 응용 프로그램에 보내기 전에 객체를 평평하게하려고합니다. 백엔드 변경을 고려할 때 데이터 구조를보다 쉽게 액세스 할 수 있고 취약하지 않습니다. –
FLEX 응용 프로그램을 사용하면 사용자가 여러 노드와 속성을 추가하여 네트워크를 설계 할 수 있습니다. 각 노드에는 여러 자식 노드가 있습니다. 사용자가 설계를 완료 할 때까지 깊이를 알 수 없습니다. 오류가 발생했습니다 : "개체가 더 반복적으로 반복 될 수 없습니다. 아마도 루프 된 참조" AMFPHP 버전을 2.1에서 2.2로 업그레이드하여이 작업을 관리했습니다. 이전 플러그인 인 "AmfphpCustomClassConverter"가이 문제를 일으킨 것 같습니다. 그것은 이제 "AmfphpVoConverter"로 이름이 바뀌었고, 송신 된 오브젝트에 얼마나 많은 레벨을 설정했는지에 관계없이 이제는 정상적으로 작동합니다. – spacorum
아, 그건 의미가 있습니다. 자녀/부모 관계가있는 것이 있다면 네트워크 다이어그램이 될 것입니다. 솔루션을 발견하고 여기에 게시 해 주셔서 감사합니다. 드물지만 관련이 많은 문제인 것처럼 보입니다. –