'fds'에 해당되는 글 2건

  1. 2009/02/23 iamyhs Flex WebService 호출
  2. 2007/05/22 iamyhs cairngorm 2.2 의 Services.mxml 을 대체하는 NetConnectionEx 클래스

Flex WebService 호출

취미 2009/02/23 17:20 iamyhs

특정툴과 연동 상황에서 WebService 를 쓸일이 생겼다, 이번에 새롭게 안 사실인대 Flex WebService 에서 Setcredential 메소드는 FDS 가 없으면 쓸수가 없다.

그런데 FDS 가 있다면 굳이 wsdl 을 쓸일이 있을까,WebService를 쓰고자 하는 이유중에 하나는 FDS 없이 적은양의 데이타를 쉽게 구현하기 위함인대, Adobe에서 저렇게 만들어논 이유가 뭔가.SOAP 헤더로 붙여서 Basic Authentication을 할려고 했지만,중간에 다른 방식으로 바꿨다.실제로 제대로 되지도 않는것 같다.

서블릿을 호출하는 방식으로 우회했지만, 이것도 호출이 많아지는 문제가 있다.

타 솔루션과 연동을 많이 해보게 되는데,자주 맞주치게되는 상황은 '왜 그건 안되느냐' 부터 '그쪽에서 알아서 하셔야죠' 라는 말들이다.

미숙한 경험과 방어적인 태도인대, 제품도입에 대한 결정권자의 입장부터 개발 당사자의 입장까지 은근히 까다롭다.몇가지 방법을 제시하고 불합리한면을 지적해도 그때부터는 기술이나 업무설계,개발자의 문제가 아니라, 정치적인 문제로 바뀌어버린다.대형 프로젝트는 이런일이 비일비재하다.결국은 아무리 생각해도 바보같은 방식으로 진행이 된다.눈먼 자들의 도시가 따로 없다.

나 역시도 그렇지 않은가 되돌아본다.


2009/02/23 17:20 2009/02/23 17:20
cairngorm 2.2 의 FDS의 의존성을 제거한 버전 + 오픈리모팅 컴포넌트를 쓰는 환경에서, service.mxml 을 대체하는 클래스를 만들어봤다.

몇일전에 모 카페에 올렸던 글이기도 하다.

NetConnectionEx.as
---------------------------------------------------------
package com.adobe.cairngorm.samples.store.business
{
    import flash.net.NetConnection;
    import flash.net.ObjectEncoding;
    import com.adobe.cairngorm.CairngormError;
    import com.adobe.cairngorm.CairngormMessageCodes;

    public class NetConnectionEx extends NetConnection
    {
        private static var instance:NetConnectionEx;
        private static var GATEWAY_URL:String = "http://localhost:8080/gateway";
       
        //AS 3.0 은 private 생성자를 지원하지 않는다.아래처럼 캔곰 에러를 발생 시킬수 있지만,
        //SingletonEnforcer 클래스를 써서  처리할 수도 있다.
        /* public function NetConnectionEx()
        {
            super();
            if ( instance != null )
            {
                throw new CairngormError( CairngormMessageCodes.SINGLETON_EXCEPTION, "NetConnectionEx" );
            }               
            instance = this;
        }
       
        public static function getInstance():NetConnectionEx
        {           
            if ( instance == null )
            {
               instance = new NetConnectionEx();
            }               
            return instance;           
        } */


        public function NetConnectionEx(enforcer:SingletonEnforcer)
        {
            super();           
        }
       
        public static function getInstance():NetConnectionEx
        {           
            if ( instance == null )
            {
               instance = new NetConnectionEx(new SingletonEnforcer());
               instance.objectEncoding = ObjectEncoding.AMF3;
               instance.connect(GATEWAY_URL,null);
            }               
            return instance;           
        }              
          
    }
}

class SingletonEnforcer{}
2007/05/22 09:31 2007/05/22 09:31