❶ java與flex通信,內存溢出
這里包的概念是邏輯上的數據包,也就是我們發送的一個完整業務消息包,粘包情況有兩種,一種是粘在一起的包都是完整的數據包,另一種情況是粘在一起的包有不完整的包。不是所有的粘包現象都需要處理,若傳輸的數據為不帶結構的連續流數據(如文件傳輸),則不必把粘連的包分開(簡稱分包)。但在實際工程應用中,傳輸的數據一般為帶結構的數據,這時就需要做分包處理。
為了避免粘包現象,可採取以下幾種措施。一是對於發送方引起的粘包現象,用戶可通過編程設置來避免,TCP提供了強制數據立即傳送的操作指令push,TCP軟體收到該操作指令後,就立即將本段數據發送出去,而不必等待發送緩沖區滿;二是對於接收方引起的粘包,則可通過優化程序設計、精簡接收進程工作量、提高接收進程優先順序等措施,使其及時接收數據,從而盡量避免出現粘包現象;三是由接收方控制,將一包數據按結構欄位,人為控制分多次接收,然後合並,通過這種手段來避免粘包。
❷ Flex 與 Java 通信,選擇什麼樣的數據格式
Flex與Java通信的方式有很多種,比較常用的有以下方式:
WebService:一種跨語言的在線服務,只要用特定語言寫好並部署到伺服器,其它語言就可以調用
HttpService:通過http請求的形式訪問伺服器
RmoteObject:通過AMF協議,以二進制的形式交互數據
Socket:套接字協議,伺服器和客戶端以IO的形式交互數據
上面幾種各有個的優勢:WebService常用於跨語言調用,不過解析協議需要花不少時間,運行速度不快;HttpService類似於Ajax;通常RmoteObject是最受歡迎的,因為它的運行效率快,數據解析方便。Socket編碼比較麻煩。
個人推薦使用RemoteObject的形式,也就是對象交互模式,假設java端有一個getUser方法返回的是User對象,在flex端直接調用getUser就會返回flex對應類型的User對象,這種方式是最效率而且最簡單實用的。
目前有一款blaseds的中間件可以實現flex與java的通信,是免費的,推薦度最高,強烈建議你學習下。
❸ flex和java ee通信問題
我就不復制網上的文章了,簡單的說一下。
三種:
1.通過httpService:你訪問一個xml或者servlet,然後flex接收返回的xml數據
2.通過webService:你訪問一個webService服務,然後獲得文本信息
3.通過RemoteObject:可以通過blazeds來訪問遠程service介面方法,Flex接收一個對象。
祝你好運
❹ 單機的Flex桌面程序 和 java 怎麼進行數據交互 不需要web伺服器,不用socket,單機!
socket不一定架伺服器,你可以本地localhost通信
可以視為你的客戶端和伺服器端都在本機,socket都指向本地 最簡單的JAVA聊天室就是這樣了,當本地用就是了
這樣最簡單
java做成伺服器 端 ,接收本地發的socket ,然後處理資料庫,返回給Flex
只是讓java 與flex通過socket當橋通信 ,並不經過什麼web 伺服器
好比: 兩台電腦用一根網線連接,並且沒上網,但就可以使用網路傳輸數據一樣,
可以選擇用jason,xml通信 ,因為不論什麼程序都好解析
❺ eclipse中使用java和flex通信,怎麼用debug模式來檢查錯誤開啟不了怎麼辦
首先你要確定你裝了fb的插件,單純的eclipse是沒法調試flex的。
如果確定,那點擊工具欄的調試按鈕。這時如果彈出讓你安裝debug版本flash player,那就去安裝,打開彈出窗口上的鏈接就是,注意要選擇相應瀏覽器的版本。
如果安裝好了,那在調試的時候就會進入斷點了,你可以選中某個變數(右鍵、創建觀察表達式)來觀察它的值。
❻ 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給歸海小豪的解答http://..com/question/314692050.html)。
❼ flex和java通信後數據獲取不完整不成功
我猜你可能聲明了兩個user對象,你的前台和flex端as接受到的User是兩個user對象,你可以嘗試將接收到的user對象賦值給前台的user對象,然後再user.dept取值試試。
或者是你返回的user.dept確實是空的,這個就要檢查後台了,在返回user對象前設置斷點,很容易發現問題。
❽ flex怎麼調用java與資料庫通信
flex做前端,可以發請求到;後台用java處理數據,(java與資料庫連接),再返回數據給flex展現。
❾ flex 與java通信,可以一次獲取多個返回值嗎
你好:
分頁分兩種:一種是服務端分頁也就是資料庫查詢語句的分頁,第二種是客戶端分頁也就是資料庫查詢所有數據。
第一種:需要在Java端實現無非在返回數據時在去查一遍總數量,一起傳到客戶端客戶端設置當前頁和顯示數據長度
第二種:就沒必要java返回總記錄數,而是在flex端自己截取當前顯示數據長度的數組,顯示截取的數組當用戶更改頁碼時,在重新截取。
你應該懂了,給分吧 謝謝
❿ flex和java用webService通信怎麼公用session
這樣做非常麻煩,因為你要非常了解session裡面到底有什麼
(因為到了flex那邊,不像在java那邊那麼嚴格了)
正確的做法是,java的webService最後給flex的是結果!而不是原始數據!
讓flex擁有更少的邏輯,就算要做胖客戶端,也應該使用DTO對象,
你需要(session裡面太多東西你根本不需要知道)的值封裝一次,再傳
給flex
這個只是我的建議
如果你真的要穿session過去,那就開放一個函數,直接return一個session
到flex時,用Object接受,o.xxx就可以拿到屬性了
不過說真的,這個效率有點低