2017-01-20 28 views
1

나는 로 뭐라고도되어, 새롭게 바쁘다..이 플렉스 프런트 엔드 애플리케이션이 백엔드 애플리케이션에 어떻게 연결되어 있습니까? mx : RemoteObject URL 끝점 URL은 어디에 정의되어 있습니까?

나는 다음과 같은 구조를 가지고 응용 프로그램 (다른 사람에 의해) 오래된 일하고하십시오 자바 백 엔드 응용 프로그램에서 데이터를 수신 플렉스 프런트 엔드입니다.

필자는 프론트 엔드가 프런트 엔드에 어떻게 연결되어 있는지 필사적으로 알기 위해이 어플리케이션을 배포해야하므로 프런트 엔드 애플리케이션 플렉스 프런트 엔드 애플리케이션으로 백엔드 포인터를 변경해야합니다. 내 FLEX 프론트 엔트 속으로

나는 MXML 파일의 HTTPService의 객체를 표현해야 할 몇 가지 태그를 포함하는이 MyAppServices.mxml 파일을 발견했다.

공식 doccumentation 읽기 :

이 태그는 액션 메시지 형식 (AMF) 인코딩을 사용하여 자바 객체의 메소드에 액세스 할 수 있습니다.

<?xml version="1.0" encoding="utf-8"?> 
<rds:ServiceLocator 
    xmlns:mx="http://www.adobe.com/2006/mxml" 
    xmlns:rds="com.adobe.cairngorm.business.*"> 
    <mx:Script> 
     <![CDATA[ 
      import org.myOrganization.myApp.util.ConfigServer; 
     ]]> 
    </mx:Script> 


    <mx:RemoteObject 
     id="genericService"  
     destination="genericService" 
     endpoint= "messagebroker/amf" 
     showBusyCursor="true" 
     requestTimeout="100" 
     /> 

    <mx:RemoteObject 
     id="themeService"  
     destination="themeService" 
     endpoint= "messagebroker/amf" 
     showBusyCursor="true" 
     requestTimeout="100" 
     /> 

    <mx:RemoteObject 
     id="dataService"   
     destination="dataService" 
     endpoint= "messagebroker/amf" 
     showBusyCursor="true" 
     requestTimeout="100" 
     /> 

    <mx:RemoteObject 
     id="userService"   
     destination="userService" 
     endpoint= "messagebroker/amf" 
     showBusyCursor="true" 
     requestTimeout="100" 
     /> 

</rds:ServiceLocator> 

그래서, 좋아 ... 난 자바 백엔드 서비스 엔드 포인트가 정의되는 경우 내가 찾은 생각 :

그래서 내 백엔드 서비스에 대한 포인터해야한다.

하지만 ... Java 백엔드 URL은 어디에 정의되어 있습니까?!?!

<mx:Script> 
    <![CDATA[ 
     import org.myOrganization.myApp.util.ConfigServer; 
    ]]> 
</mx:Script> 

org.myOrganization.myApp.util에 포함 된 액션 코드를 가져와야합니다 : 내가 볼 수있는 이전 MyAppServices.mxml 파일의 코드를 검사

는이 절을 포함 .ConfigServer 파일.

그래서, 내 프로젝트에 나는이 파일을 발견

: 당신이 경로는 동일하지만, 프로젝트의 파일 존재 볼 수 있듯이 org.myOrganization.myApp.util.ConfigServer.as을

있는 .as 확장. 자동으로 추가됩니까?

package org.myOrganization.myApp.util { 
    import flash.events.HTTPStatusEvent; 
    import flash.events.IOErrorEvent; 
    import flash.events.ProgressEvent; 
    import flash.events.SecurityErrorEvent; 
    import flash.net.URLLoader; 
    import flash.net.URLRequest; 
    import flash.net.URLVariables; 

    import mx.collections.ArrayCollection; 
    import mx.core.Application; 
    import mx.managers.BrowserManager; 
    import mx.managers.IBrowserManager; 
    import mx.utils.URLUtil; 

    import org.osmf.utils.URL; 

    public class ConfigServer { 

     // settings 
     public static var BIRT_URL:String; 
     public static var GEOSERVER_URL:String; 
     public static var GEOSERVER_BASELAYER_URL:String; 
     public static var APP_CONTEXT:String; 
     public static var CAF_SERVER_URL:String; 
     public static var CAF_REGISTER_URL:String; 

     public static var CAF_FACEBOOK_LOGIN_URL:String; 
     public static var CAF_GOOGLE_LOGIN_URL:String; 
     public static var CAF_TWITTER_LOGIN_URL:String; 

     public static var CAF_FACEBOOK_REGISTER_URL:String; 
     public static var CAF_GOOGLE_REGISTER_URL:String; 
     public static var CAF_TWITTER_REGISTER_URL:String; 

     public static var CAF_FACEBOOK_LOGIN_ENABLED:Boolean; 
     public static var CAF_GOOGLE_LOGIN_ENABLED:Boolean; 
     public static var CAF_TWITTER_LOGIN_ENABLED:Boolean; 

     public static var CAF_FACEBOOK_REGISTER_ENABLED:Boolean; 
     public static var CAF_GOOGLE_REGISTER_ENABLED:Boolean; 
     public static var CAF_TWITTER_REGISTER_ENABLED:Boolean; 

     //operations 
     public static var LIST_BYID:String = "listById"; 
     public static var RESOURCES_NUMBER = "resourceNumber"; 
     public static var LIST_OPERATION:String = "list"; 
     public static var GET_OBJECT:String = "getObject"; 
     public static var ADD_OPERATION:String = "add"; 
     public static var DELETE_OPERATION:String = "delete"; 
     public static var UPDATE_OPERATION:String = "update"; 
     public static var REPORT_OPERATION = "report"; 
     public static var GET_BYID:String = "getById"; 
     public static var LIST_UPDATE_OPERATION:String = "listUpdate"; 
     public static var APP_SETTINGS = "appSettings";  


     [Bindable] 
     public static var VARIABLES_URL:String = "prop.properties"; 

     [Bindable] 
     public static var arrColl:ArrayCollection; 

     [Bindable] 
     public static var paramColl:ArrayCollection; 

     public static var urlReq:URLRequest; 
     public static var urlLdr:URLLoader; 

     public static function init():void { 
      /* Initialize the two ArrayCollections objects with empty arrays. */ 
      arrColl = new ArrayCollection(); 
      paramColl = new ArrayCollection(); 

      /* Initialize the URLRequest object with the URL to the file of name/value pairs. */ 
      urlReq = new URLRequest(VARIABLES_URL); 

      /* Initialize the URLLoader object, assign the various event listeners, and load the specified URLRequest object. */ 
      urlLdr = new URLLoader(); 
      urlLdr.addEventListener(Event.COMPLETE, doEvent); 
      urlLdr.addEventListener(Event.OPEN, doEvent); 
      urlLdr.addEventListener(HTTPStatusEvent.HTTP_STATUS, doEvent); 
      urlLdr.addEventListener(IOErrorEvent.IO_ERROR, doEvent); 
      urlLdr.addEventListener(ProgressEvent.PROGRESS, doEvent); 
      urlLdr.addEventListener(SecurityErrorEvent.SECURITY_ERROR, doEvent); 
      urlLdr.load(urlReq); 
     } 

     public static function doEvent(evt:Event):void { 
      arrColl.addItem({type:evt.type, idx:arrColl.length+1, eventString:evt.toString()}); 

      switch (evt.type) { 
       case Event.COMPLETE: 
        /* If the load was successful, create a URLVariables object from the URLLoader.data property and populate the paramColl ArrayCollection object. */ 
        var ldr:URLLoader = evt.currentTarget as URLLoader; 
        var vars:URLVariables = new URLVariables(ldr.data); 
        var key:String; 

        for (key in vars) { 
         paramColl.addItem({key:key, value:vars[key]}); 
        } 

        //params.visible = true; 
        break; 
      } 
     } 



//  public static function getCurrentUrl():String { 
//   var browserManager:IBrowserManager = BrowserManager.getInstance(); 
//   
//   var url:String = browserManager.url; 
//   var result : String = url;  
//   if (url && (url.indexOf("file:/") == -1))  
//   {   
//    //result = mx.utils.URLUtil.getFullURL(url, url); 
//    result = mx.utils.URLUtil.getProtocol(url)+ "://" +mx.utils.URLUtil.getServerNameWithPort(url); 
// 
//   }  
//   return result; 
//  } 
//  
//  [Bindable] 
//  public static var properties:Object = new Object(); 
//  private static var loadedProps:Properties = new Properties(); 
//  private function init():void {  
//   loadedProps.addEventListener(Event.COMPLETE, onLoaderComplete);  
//   loadedProps.addEventListener(IOErrorEvent.IO_ERROR, onIOError);  
//   loadedProps.load("prop.properties"); 
//   loadedProps.s 
//  } 
//  
//  private function onLoaderComplete(event:Event):void {  
//   properties.host = loadedProps.getProperty("host");  
//   properties.port = loadedProps.getProperty("port");  
//   properties.webcontext = loadedProps.getProperty("context-root"); 
//  } 
    }  
} 

하지만 여기 내 서버 정의를 찾을 수 없습니다 :

그래서 생 파일의 코드입니다.

이 코드에있다 :

[Bindable] 
public static var VARIABLES_URL:String = "prop.properties"; 

나는 그것이 소품의 내용을 내보내는 것이 thoungt.속성 VARIABLES_URL 변수 (나는이 동작에 대해 절대적으로 확신하지 못함)에 파일을 가지고 있지만 prop.properties 파일을 내 프로젝트에 포함하지 않았습니다.

백 엔드 엔드 포인트 URL이이 Flex 프로젝트에 정의되는 위치에 대해 알고 계십니까? 아니면 그것을 검색하는 방법에 대한 힌트를 적어도?

답변