2012-05-03 3 views
1

내 댄서 응용 프로그램에서 memcached (또는 File in devel)에 CHI 인터페이스를 사용하고 있지만 객체를 캐시 할 때 serializer에서 오류가 발생합니다. 내 댄서에 다음 설정이 있습니다.댄서 앱에 캐시의 객체를 직렬화하도록 지시하려면 어떻게해야합니까?

engines: 
    JSON: 
    allow_blessed: 1 
    convert_blessed: 1 

그 밖의 무엇이 필요한가요?

Error message: 
Error while loading bin/app.pl: encountered object 'C3M::CMF=HASH(0x3ef8aa8)', but neither allow_blessed nor convert_blessed settings are enabled at /usr/lib/perl5/site_perl/5.10/CHI/Serializer/JSON.pm line 19. 
+2

['#이 dancer'] (http://irc.perl.org)는 설명을 요청합니다 "그것은 당신이 잘못된 장소에있는 설정 키를 넣어 가능, 그것은 불가능하다 그 작은 정보로 말해도. " – daxim

+0

엔진은 루트 키입니다 – Chinthamani

+1

이 내용은 이해할 수 없습니다 **/usr/lib/python5/site_python/5.10/CHI/Serializer/JSON.pm' ** –

답변

0

CHI :: Serializer :: JSON은 Dancer :: Serializer :: JSON과 동일한 직렬기를 사용하지 않습니다. Dancer :: Serializer :: JSON은 config.yml에서 ('engines') 설정을 사용하지만 CHI :: Serializer :: JSON에 구성 옵션을 보낼 수있는 방법은 없습니다.

해결이 :

use CHI::Serializer::JSON; 
my $JSON = JSON->new->utf8->canonical; 
$JSON->allow_blessed(1); 
$JSON->convert_blessed(1); 
*CHI::Serializer::JSON::serialize = sub { $JSON->encode($_[1]) }; 
*CHI::Serializer::JSON::deserialize = sub { $JSON->decode($_[1]) }; 
관련 문제