批改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。
下载便能用。

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











나중에 사용할 프로젝트 디렉터리 dockerfile 파일에 dockerfile 파일을 만듭니다. 파일은 서버에 새로 생성된 /data/docker/hellolearn 폴더에 배포됩니다. (파일 경로는 사용자 지정할 수 있습니다.) 위에서 생성한 maven 패키지 jar 패키지와 dockerfile을 서버에 새로 생성된 폴더(/data/)에 복사합니다. 도커/hellolearn). dockerbuild-thellolearn.dockerbuild-t 이미지 생성 이미지 이름: dockerfile 레이블의 상대 위치, 점은 현재 디렉터리를 나타내며, 태그가 기록되지 않은 경우 기본값은 최신입니다. 컨테이너 문서 시작

JAR 파일 실행을 위한 전제조건 Linux 시스템에서 JAR 파일을 실행하려면 JVM(Java Virtual Machine), 코어 클래스 라이브러리 등 Java 애플리케이션을 실행하는 데 필요한 기본 구성 요소인 JRE(Java Runtime Environment)가 설치되어 있어야 합니다. Ubuntu, Debian, Fedora, openSUSE 등과 같은 많은 주류 Linux 배포판은 사용자 설치를 용이하게 하기 위해 JRE 패키지의 소프트웨어 라이브러리를 제공합니다. 다음 문서에서는 널리 사용되는 배포판에 JRE를 설치하는 단계를 자세히 설명합니다. JRE를 설정한 후 개인 기본 설정에 따라 명령줄 터미널 또는 그래픽 사용자 인터페이스를 사용하여 JAR 파일을 시작하도록 선택할 수 있습니다. 선택은 Linux 셸에 대한 친숙도와 개인 선호도에 따라 달라질 수 있습니다.

maven 명령: 1.mvncleanpackage-DskipTests: 프로젝트 디렉터리에서 이 명령을 실행하여 대상 디렉터리에 jar 패키지 또는 war 패키지를 생성합니다. 2.mvnclean: 프로젝트에서 생성된 임시 파일(일반적으로 모듈 아래의 대상 디렉터리)을 정리합니다. 3.mvncompile-DskipTests: 모듈 설치 명령은 다른 모듈에서 사용할 수 있도록 패키지된 jar/war 파일을 로컬 웨어하우스에 복사합니다. -Dmaven test. .skip=true 테스트를 건너뜁니다(testcompile도 건너뜁니다).4.mvntest: 테스트 명령 또는 src/test/java/ 실행

Java의 String.valueOf() 함수를 사용하여 기본 데이터 유형을 문자열로 변환 Java 개발에서 기본 데이터 유형을 문자열로 변환해야 할 때 일반적인 방법은 String 클래스의 valueOf() 함수를 사용하는 것입니다. 이 함수는 기본 데이터 유형의 매개변수를 허용하고 해당 문자열 표현을 반환할 수 있습니다. 이 기사에서는 기본 데이터 유형 변환을 위해 String.valueOf() 함수를 사용하는 방법을 살펴보고 다음과 같은 몇 가지 코드 예제를 제공합니다.

char 배열을 문자열로 변환하는 방법: 할당을 통해 달성할 수 있습니다. char 배열이 문자열에 직접 값을 할당하고 실행하도록 하려면 {char a[]=" abc d\0efg ";string s=a;} 구문을 사용합니다. 변환을 완료하는 코드입니다.

머리말 springboot의 구성 파일에서 구성 파일의 이름은 고유한 의미와 용도를 갖습니다. dev 개발 환경 prod 생산 환경(기본) 테스트 테스트 환경은 지정된 구성 파일을 로드합니다--spring.profiles.active=prod 방법 jar 패키지를 로드하는 springboot는 콘솔에서 직접 //Start입니다. 단점은 콘솔이 닫힐 때 프로젝트도 닫힌다는 것입니다. java-jarbootdo.jar//이 방법은 백그라운드에서 실행될 수 있지만 쉘이 시작되면 java-jar/bootdo-2.0.0.jar>bootdolog.file2>&도 중단됩니다.

1. SpringBoot는 구성 파일 경로를 지정합니다. SpringBoot에서는 구성 파일을 jar 패키지 외부에 배치할 수 있으므로 재패키징 및 배포 없이 구성을 쉽게 수정할 수 있습니다. 다음은 구성 파일 디렉터리를 지정하는 여러 가지 방법입니다. (효율성이 높은 우선 순위에서 낮은 우선 순위로 정렬) 1) 명령줄 매개 변수 사용: 애플리케이션을 시작할 때 --spring.config.location 또는 -Dspring.config를 사용할 수 있습니다. 위치 명령줄 매개변수는 구성 파일의 경로를 지정합니다. 예: (config 뒤의 /는 생략할 수 없음) java-jartest.jar--spring.config.locatio

서문: 직장에서 타사 푸시 기능을 통합해야 하는 springboot 프레임워크로 구축된 Javaweb 프로젝트를 접하게 되었고, 그래서 Xiaomi 푸시 서비스를 사용하고 관련 jar 패키지를 다운로드했습니다. 프로젝트에 로컬 jar를 도입하는 것은 큰 문제가 아닙니다. 코드를 작성한 후에는 테스트 클래스 테스트를 통과하는 데 문제가 없습니다. 그런 다음 패키징하고 개발 서버에 배포할 준비를 합니다. 프로젝트는 tomcat을 통해 배포되기 때문에 패키징 방식은 war 패키지로 되어 있습니다. 패키징한 후 개발 서버에 업로드하고, 작성된 푸시 인터페이스를 테스트해 보았는데 실패했습니다. 분석 결과, 프로젝트의 종속 jar가 저장되어 있는 packaged war의 lib 디렉터리에 로컬로 도입된 push 관련 jar 패키지가 포함되어 있지 않은 것으로 나타났습니다. 30분 동안 고민한 끝에 문제가 해결되었습니다. 해결하다
