原文位址:http://www.buildapp.net/java/show.asp?id=10197
remoting協定而言,用得比較多的是hessian與phprpc,但phprpc的轉化效率比hessian高很多。以下連結是牛人對此兩者的序列化/反序列化效率作出的比較:
http://www.javaeye.com/topic/333720
我因為開發的需要,對兩者能支援的資料類型也進行了一些測試和比較,總結如下:
hessian
1.不支援集合内含有char數組;
2.除1外,完美支援各種集合、元素類型的解析轉換;
phprpc
1.不支援集合内value為string類型的值,需由客戶自己轉換,代碼如:new String((byte[])test.getMap().get("1"),"utf-8")
2.集合内除byte[]外,不支援其它數組,如int[]、float[]、char[]等
乍一看覺得用hessian就夠了,雖然hessian對集合内的char數組不支援轉換,但是由于在實際運用中使用機率較低。但是眼看着效率高 hessian N倍的phprpc不用怪蛋痛,于是着手研究代碼,企圖從源碼解決這個不支援集合内value為string類型值的問題。
其實問題原因在于PHPRPC在反序列化(unserialize)過程,無法正确識别集合中子元素的字元串類型。而PHPRPC中,負責序列化與反序列 化過程的類為PHPSerializer.java。是以定位好問題後就不難解決了。此處省略N千字,其實也就是添加一行代碼的問題,卻耗盡了一整個下午 的精力。
http://chembo.javaeye.com/blog/905038 下載下傳jar
spring-security中添加使用者過期功能
Strategy模式
Jetty5和Jetty6之間的代碼大重構
修改phprpc源碼以支援集合類的string類型的轉換
jdk tomcat solr架構全站搜尋
java讀取和寫入EXCEL
系統記錄目前線上使用者清單
mysql分表方法實作
DCI之轉賬簡單Example
img标簽指向jsp圖檔不顯示的問題
關于時間DateFormat 很詭異的問題。
java annotation
Decorator模式
springside3.*中log4j和java.util.concurrent的結合使用
Hibernate映射id為uuid.hex時如何構造POJO和設定映射
maven中央庫建立工具nexus
FreeMarker 生成靜态html
GateIn在Tomcat下啟動報錯
spring,jpa(hibernate)的一個test(個人記錄)
jsp頁面讀取系統日志并顯示
日志子產品
企業應用中的公式管理功能
關于commons dbutils元件的一個小缺陷分析
JavaScript中非邏輯操作數的邏輯運算
使用jsp生成彩色漢字驗證碼
jsp 圖形驗證碼 IllegalStateException 異常
java 傳值給js 丢失
Struts2 的validation校驗方法之xml
Junit4 最簡單用法和執行個體
FreeMarker在java項目中的應用
filter執行個體
java 縮略圖顯示緩慢問題
apache commons io
JDBC處理大資料量的方法-addBatch
SCA實踐-運用tuscany實作SCA(一)
Java 寫的低級落雨遊戲
Digester 讀API随記
HTTP 1.1與HTTP 1.0的差別
weblogic故障處理(BEA-000362)
使用XMLConfiguration讀取XML檔案
Struts2中應用UrlRewrite無反應的解決方案
資訊: Port busy 8100 java.net.BindException: Address already in use: JVM_Bind
Spring3.0 + 自定義注解實作記錄檔記錄功能
IO代碼檔案加密
又一個URI請求參數編碼問題
配置JDK、MyEclipse配置加載庫類JDK、編譯JDK和Tomcat遠行JDK詳解
server push&servlet asynchronous
"beans:beans", must match DOCTYPE root "null".
JAVA的動态執行1 - javax.script.ScriptEngineManager
hive處理日志,自定義inputformat
Eclipce結合Ant進行編譯、打包、傳輸、運作
調停者模式
JAVA實作直接插入排序
Google Translator
java中的靜态類
java的四舍五入的問題
Java JPA
配置struts架構後心得
設計模式學習系列(Facade模式和Adapter模式)
對于構造方法有可能産生異常的情況下垃圾清理問題的研究
Java JDK常用指令
Jbpm4.4 獲得Start節點和任務節點中的表單路徑
linux下圖檔添加中文亂碼解決
Richfaces複選框樹(Checkbox tree)的純java解決方案
eclipse e4的web版本開發工具orion
注冊JDBC驅動的三種方式
讓Hibernate Query傳回組織好的VO對象清單
Java的事件監聽器
Java Web方向與Android方向的選擇
groovy代碼執行效率
BeanShell執行标準Java語句和表達式
經典JAVA入門題,等待輸入,求最大數、最小數、總和等。
MapReduce: JT預設task scheduling政策
java MD5
使用Ant+xdoclet來生成Hibernate的配置檔案和資料庫映射檔案
XML通路方式
XFire 開發WebService
myeclipse出現Could not find the main class原因分析
使用InstallShield打包java程式exe以及jdk,安裝完成自動運作
總結一下網站注入與防範的方法
SWT源碼分析 (一)
swing自制元件(一)
lucene + hadoop 分布式搜尋運作架構 Nut 1.0a9
java資料結構-HashMap
根據圖檔的exif時間資訊-重命名jpg檔案
Ajax驗證使用者ID是否存在
String 導緻的記憶體溢出
關于StreamGobbler讀取Stream的線程同步問題
hadoop部署錯誤之一:java.lang.IllegalArgumentException: Wrong FS
webservice開發的一些心得體會
java實作快速排序
JBOSS6.0 final安裝配置運作停止
MySQL Cluster(MySQL 叢集) 初試
堆和棧的差別
使用ant編譯時錯誤:Specify at least one source--a file or resource
java面試中String、StringBuffer、StringBuilder
解決Mina的傳輸中造成的TIME_WAIT過多的問題(不能立即斷開連接配接)
pojo與hibernate.hbm.xml與資料庫表字段對應與否
解決方案:Tomcat啟動時視窗一閃而過(startup.bat)
spring中加載Bean配置檔案的常用方式
更多java開發資料,請通路http://www.buildapp.net/java/
轉載于:https://blog.51cto.com/2648928/675731