rubuamf 설치

예전 에 Flex 를 했 는데 백 스테이지 가.net 의 FluorineFx 가 아니 라 자바 의 bds 를 사용 해서 항상 불쾌 하고 개발 효율 이 낮 았 습 니 다.본의 아니 게'플 렉 시 블 레일 스'라 는 책 을 읽 고 눈 에 띄 었 습 니 다.원래 ror 도 플 렉 스 백 스테이지 가 될 수 있 었 는데 오 랜 만 에 움 직 이 는 ROR[img]/images/smiles/icon 을 주 울 수 있 었 습 니 다.biggrin.gif" alt="[/img] 。
책의 예 를 들 어 앞 배경 에서 상호작용 을 하 는 HTTP 서비스 전송 XML 은 자주 사용 하 는 amf 게 이 트 웨 이 가 아니 라 효율 에 대해 걱정 이 됩 니 다.그리고 좋 은 책 에서 제1 1 장 Refactoring to Ruby AMF 는 저 에 게 익숙 한 amf 를 보 여 주 었 습 니 다.Rubyamf,응,괜찮아 보 여.뛰 어가 서[img]/images/smiles/iconlol.gif" alt="[/img] 。
먼저 제 환경 을 소개 하 겠 습 니 다.저 는 새로운 것 을 좋아 하기 때문에 사용 하 는 버 전 은 모두 새 롭 습 니 다.
ruby-1.9.1-p243
rails 2.3.3
첫걸음
ruby script/plugin install http://rubyamf.googlecode.com/svn/trunk/rubyamf
여기 URL 조심 하 세 요.http://rubyamf.googlecode.com/svn/
tags/current/rubyamf
두 번 째 단계
ruby 1.9 문법 오 류 를 고치 고 ruby amf/util/vohelper.rb,rubyamf/util/action_controller.rb,rubyamf/app/filters.rb 의 when.....문법 을 when...then 으로 바 꾸 었 습 니 다.
지금까지 서 비 스 는 정상적으로 시 작 될 수 있다.
세 번 째 단계
undefined method `toutf8' for "flex.messaging.messages.CommandMessage":String
호출 서비스 오류
해결 방법:
rubyamf/io/amf_deserializer.rb
플러스 require'kconv'
네 번 째 단계
The method {xxx} in class {xxx/xxxx/xxxxx_controller.rb} is not declared.
방법 이 정의 되 지 않 음
해결 방법:
rubyamf/app/actions.rb
100 줄
if @service.private_methods.include?(@amfbody.service_method_name)
          raise RUBYAMFException.new(RUBYAMFException.METHOD_ACCESS_ERROR, "The method {#{@amfbody.service_method_name}} in class {#{@amfbody.service_class_file_path}} is declared as private, it must be defined as public to access it.")
        elsif [email protected]_methods.include?(@amfbody.service_method_name)
          raise RUBYAMFException.new(RUBYAMFException.METHOD_UNDEFINED_METHOD_ERROR, "The method {#{@amfbody.service_method_name}} in class {#{@amfbody.service_class_file_path}} is not declared.")
        end

...로 바꾸다
if @service.private_methods.include?(@amfbody.service_method_name.intern)
          raise RUBYAMFException.new(RUBYAMFException.METHOD_ACCESS_ERROR, "The method {#{@amfbody.service_method_name}} in class {#{@amfbody.service_class_file_path}} is declared as private, it must be defined as public to access it.")
        elsif [email protected]_methods.include?(@amfbody.service_method_name.intern)
          raise RUBYAMFException.new(RUBYAMFException.METHOD_UNDEFINED_METHOD_ERROR, "The method {#{@amfbody.service_method_name}} in class {#{@amfbody.service_class_file_path}} is not declared.")
        end

Bingo!
이상 하 게 도 나 는 분명히 이미 한 번 썼 는데,십 여 일이 지나 서 다시 보 았 을 때 또 없어 져 서 다시 쓸 수 밖 에 없 었 다.

좋은 웹페이지 즐겨찾기