2012-09-05 3 views
0

다른 CFC (objCFC)의 인스턴스를 반환하는 원격 함수가있는 CFC (webCFC)를 가져 오려고합니다. 여기 ColdFusion 확장 구성 요소가없는 매개 변수

는 CFC가 있습니다 :이 URL 호출하면

#webCFC 
component { 
    remote function displayCFC(version=1) { 
     if(version==1) { 
      return new baseCFC(); 
     } else { 
      return new objCFC(); 
     } 
    } 
} 

#baseCFC 
component 
    accessors="true" 
    persistent="true" 
{ 
    property name="name" default="pete";  
} 

#objCFC 
component 
    extends="baseCFC" 
    persistent="true" 
    accessors="true" 
{ 
    property name="age" default="30"; 
} 

: /webCFC.cfc?method=displayCFC & returnFormat = JSON을, 나는이 응답을 얻을 :

{ 
"name" : "pete" 
} 

을하는 괜찮습니다. 나는이 URL 호출하는 경우 : /webCFC.cfc?method=displayCFC & returnFormat = JSON & 버전 = 2, 다음 응답이 baseCFC에서

{ 
"age" : 30 
} 

을 재산 누락을 나는보고 응답을 기대 같은 : objCFC에

{ 
"name" : "pete", 
"age" : 30 
} 

나는 내가에서는 setName()와 대한 getName (사용할 수 있다는 것을 알고) 기능, 그것은 definatly baseCFC을 확장되지만 확장 속성이 표시되지 않는 경우 I 브라우저를 통해 CFC에 액세스하십시오.

이 기능을 사용할 수 있습니까?

답변

0

이것은 seralizejson 버그와 관련이 있습니다 (버그가 언제 생길지 확실하지 않음).

해결 방법은 구조체에서 원하는 모든 속성을 반환하는 getMemento() 또는 toJSON() 메서드를 구현하는 것입니다. 그런 다음 serializeJSON 그 구조체 대신.

+0

JSON과 관련이 있는지 궁금했지만, 페이지에서 writeDump를 수행하면 속성도 표시되지 않습니다. 하지만 당신 말이 맞아요. 만약 이것이 버그라면, 나는 속성들을 반복하여 수동으로 출력해야합니다. –