本文目錄一覽:
java 裡面的方法 怎麼調用 flex 的方法
推薦用remoteObject方式。
這裡需要用到services-config.xml配置文件,我個人理解的該配置文件就是一個Flex與業務層間的通道。
假設業務層有一個java類TestAction.java
①那麼services-config.xml配置文件中的寫法就是這樣:
destination id=”TestAction”
channels
channel ref=”spring-amf” /
/channels
/destination
完成這個配置之後就可以在Flex層調用TestAction里的方法了。
②在MXML文件中這樣寫:
mx:RemoteObject id=”TestAction”
destination=”TestAction”
showBusyCursor=”true”
mx:method name=”findDataList”
result=”processFindDataList(event.result)”
/mx:method
/mx:RemoteObject
其中destination就是你在services-config.xml配置文件聲明的通道,
id是你在對應的AS文件可以用的名字。id你可以用隨便的名字,你id起的是什麼名字那你在AS文件中就用什麼名字。
③AS文件中這樣寫
private function getDataList():void
{
TestAction.findDataList(String para1,String para2,…..)
}
findDataList是TestAction中聲明的方法。TestAction.findDataList返回的結果用processFindDataList方法接收(在mx:RemoteObject 中已經聲明)
private function processFindDataList(result:Object):void
{
if(result != null)
{
處理;
}
else
{
Alert.show(“沒有你想要的結果”);
}
}
全部手寫,不明白的話再討論
(這是我於2011-9-8 11:12給歸海小豪的解答)。
flex 用socket連接JAVA時 的安全沙箱問題
關於Flex安全沙箱問題的解決最近遇到了Flex安全沙箱問題,找了很多資料發現不是都是和我的程序相關,我的程序需要socket連接,而大多數講的都是跨域文件讀取的。我就把這些方法都總結出來:跨域文件讀取方法一:在目標伺服器上布署crossdomain.xml文件(我用的此方法很管用,放上就沒問題了)需要遠程服務根目錄定義有crossdomain.xml文件,如下:?xmlversion=”1.0″encoding=”UTF-8″?cross-domain-policyallow-access-fromdomain=”*”//cross-domain-policy方法二:使用代理,把Flex要訪問的遠程文件通過asp,php,jsp等腳本讀取到本地,然後再由Flex去訪問;方法三:使用Adobeflashplayer9打開程序後,點擊菜單欄中文件-創建播放器…即生成exe文件,運行exe文件即可突破安全限制;方法四:1、找到這個文件夾:c:\DocumentsandSettings\UserName\ApplicationData\Macromedia\FlashPlayer\#Security2、在其下建立一個名為”FlashPlayerTrust”的文件夾3、在”FlashPlayerTrust”文件夾下新建一TXT文件,內容如下:c:\d:\e:\f:\4、將該txt文件命名為:”myTrustFiles.cfg”再打開你硬碟里的SWF文件,就不會出現那個煩人的安全設置提示窗口了!方法五:用HttpService它默認是有Proxy的,需要配置flex-config.xml,裡面有一段:http-service-proxywhitelist………………/whitelist/http-service-proxy這個是白名單,一般情況下是注釋掉的,也就是默認只有本地的http://{localserver}/*和https://{localserver}/*可以訪問。其他的需要在flex-config.xml里的自行修改成需要的就可以了。訪問本地自然不會跨域,不過你肯定訪問區域網其他機器了,所以是依照白名單規則,屬於跨域Socket沙箱問題在Flex安全沙箱中使用Socket進行通信時,也會受到Flash9的新安全策略的困擾.解決方法不能像在Web伺服器中布置一個crossdomain.xml來解決,或是在伺服器上專門開啟843埠來提供安全策略.有一種方法就是在接收到客戶端的連接後,向其發送安全策略.比如我是用JAVA來開發,客戶端的Flex會先搜索同域,及伺服器的843口,看是否能得到安全策略,這時候Socket是先建立好的,可以在接收到Socket,即Accept事件發生是,馬上向其發送策略串,否則客戶端就會因為安全策略不過關,於斷開,如果成功獲取策略,則客戶端將斷掉先前的那次Socket,再真正進行程序中你要求的Socket連接請求.
flex 與 java 通訊失敗
對啊,修改配置文件之後必須要重啟伺服器才可以啊。以後注意了就可以了。
另外一般情況下修改一半類是不用重啟伺服器的,伺服器都是直接可以載入修改後的類的。修改靜態類或是靜態方法最好重啟。寫的做的多了你就知道了。經驗都是這樣積累起來的
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/159956.html