批改phprpc源码以支持集合类的string类型的转换
修改phprpc源码以支持集合类的string类型的转换
就remoting协议而言,用得比较多的是hessian与phprpc,但phprpc的转化效率比hessian高很多。以下链接是牛人对此两者的序列化/反序列化效率作出的比较:
http://www.iteye.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千字,其实也就是添加一行代码的问题,却耗尽了一整个下午的精力。以下是编译好了的spring2.5需要用到phprpc的三个jar 文件,分别是:phprpc_client.jar phprpc_spring.jar phprpc.jar。
下载便能用。

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Buat fail dockerfile dalam direktori projek dockerfile, yang akan digunakan kemudian. Fail itu digunakan dalam folder /data/docker/hellolearn yang baru dibuat pada pelayan (laluan fail boleh disesuaikan dengan pakej maven packaged jar dan fail dockerfile yang dibuat di atas ke folder yang baru dibuat pada pelayan (/data). /docker/hellolearn). Hasilkan imej dockerbuild-thellolearn.dockerbuild-t Nama imej: kedudukan relatif fail docker label, titik mewakili direktori semasa dan lalai adalah terkini jika tiada teg ditulis. Mulakan doc bekas

Prasyarat untuk menjalankan fail JAR Menjalankan fail JAR pada sistem Linux memerlukan pemasangan Java Runtime Environment (JRE), yang merupakan komponen asas yang diperlukan untuk melaksanakan aplikasi Java, termasuk Java Virtual Machine (JVM), perpustakaan kelas teras, dsb. Banyak pengedaran Linux arus perdana, seperti Ubuntu, Debian, Fedora, openSUSE, dll., menyediakan perpustakaan perisian pakej JRE untuk memudahkan pemasangan pengguna. Artikel berikut akan memperincikan langkah-langkah untuk memasang JRE pada pengedaran popular. Selepas menyediakan JRE, anda boleh memilih untuk menggunakan terminal baris arahan atau antara muka pengguna grafik untuk memulakan fail JAR mengikut keutamaan peribadi anda. Pilihan anda mungkin bergantung pada kebiasaan dengan cangkerang Linux dan keutamaan peribadi

arahan maven: 1.mvncleanpackage-DskipTests: Jalankan arahan ini dalam direktori projek untuk menjana pakej jar atau pakej perang dalam direktori sasaran. 2.mvnclean: Bersihkan fail sementara yang dihasilkan oleh projek, biasanya direktori sasaran di bawah modul 3.mvncompile-DskipTests: Perintah pemasangan modul menyalin fail jar/war yang dibungkus ke gudang tempatan anda untuk digunakan oleh modul lain -Dmaven .skip=ujian langkau benar (testcompile juga akan dilangkau).4.mvntest: perintah ujian, atau jalankan src/test/java/

Tukar jenis data asas kepada rentetan menggunakan fungsi String.valueOf() Java Dalam pembangunan Java, apabila kita perlu menukar jenis data asas kepada rentetan, kaedah biasa ialah menggunakan fungsi valueOf() kelas String. Fungsi ini boleh menerima parameter jenis data asas dan mengembalikan perwakilan rentetan yang sepadan. Dalam artikel ini, kami akan meneroka cara menggunakan fungsi String.valueOf() untuk penukaran jenis data asas dan menyediakan beberapa contoh kod untuk

Kaedah menukar tatasusunan char kepada rentetan: Ia boleh dicapai dengan penugasan Gunakan sintaks {char a[]=" abc d\0efg ";string s=a;} untuk membenarkan tatasusunan char terus memberikan nilai kepada rentetan, dan laksanakan. kod untuk melengkapkan penukaran.

Kata Pengantar Dalam fail konfigurasi springboot, nama-nama fail konfigurasi mempunyai makna dan kegunaannya sendiri persekitaran pembangunan prod persekitaran ujian (lalai) memuatkan fail konfigurasi yang ditentukan--spring.profiles.active=prod Cara-cara untuk. springboot untuk memuatkan pakej balang adalah/ / Mulakan terus dalam konsol Kelemahannya ialah projek akan ditutup apabila konsol ditutup. java-jarbootdo.jar//Kaedah ini boleh dijalankan di latar belakang, tetapi jika shell dilancarkan, ia juga akan menggantung java-jar/bootdo-2.0.0.jar>bootdolog.file2>&

1. SpringBoot menentukan laluan fail konfigurasi: Dalam SpringBoot, fail konfigurasi boleh diletakkan di luar pakej balang, supaya konfigurasi boleh diubah suai dengan mudah tanpa pembungkusan semula dan penggunaan. Berikut ialah beberapa cara untuk menentukan direktori fail konfigurasi: (diisih daripada keutamaan keberkesanan tinggi ke rendah) 1) Gunakan parameter baris arahan: Apabila memulakan aplikasi, anda boleh menggunakan --spring.config.location atau -Dspring.config parameter baris arahan lokasi menentukan laluan ke fail konfigurasi, contohnya: (konfigurasi / selepas tidak boleh ditinggalkan) java-jartest.jar--spring.config.locatio

Latar belakang cerita adalah dalam rangka kerja yang dipanggil magic-api Anda boleh menulis kod dengan cara kod rendah dan menyusun dan melaksanakannya secara dinamik Walau bagaimanapun, jika anda ingin memuatkan beberapa kelas import, anda perlu memuatkan balang dalam projek sebelum anda boleh mengimportnya Kemudian setiap kali anda datang ke Untuk kelas baharu, anda perlu memuatkan semula kelas ke dalam projek, kemudian membungkus projek, dan kemudian mengimport... Ia sangat membosankan! ! ! Sudah tentu, kita juga perlu menyebut proses pelaksanaan umum sihir Apabila anda mendapat salinan kod sumber, import pada fail pengepala akan dimuatkan ke dalam memori melalui Class.forName dalam kod sumber , hanya gunakan URLClassLo.
