개 조 된 Spring HTTP invoker 원 격 방법 호출,간단 하고 사용 하기 쉽 습 니 다.

1644 단어 springxmlant
동생 이 요 며칠 개조 한 Spring 원 격 방법 은 개인 적 으로 매우 유용 하 다 고 생각한다.HTTP Invoker 를 참고 하여 xml 설정 을 버 리 고 인 터 페 이 스 를 설정 하 는 properties 파일 로 바 꾸 었 습 니 다.
클 라 이언 트 요청 과 응답 은 각각 RemoteInvocation,RemoteInvocation Result 를 사용 하 는데 모두 Spring 의 동쪽 입 니 다.
개발 할 때 원 격 인 터 페 이 스 를 작성 한 후,인 터 페 이 스 를 service.properties 파일 에 설정 한 후,ant 로 server 엔 드 의 인터페이스 와 PoJO 를 클 라 이언 트(첨부 코드 에서 제공)에 jar 패키지 한 후 클 라 이언 트 에서 호출 할 수 있 습 니 다.
서버 쪽 의 주요 처리 코드:
	public void execRpcService(InputStream inputStream, OutputStream outputStream) throws IOException {
		Object returnObj = null;
		ObjectInputStream objInputStream = new ObjectInputStream(inputStream);//              
		ObjectOutputStream objOutputStream = new ObjectOutputStream(outputStream);//             
		RemoteInvocation remoteInvocation = null;
		try {
			remoteInvocation = (RemoteInvocation) objInputStream.readObject();
			Object serverObj = serviceMap.get(remoteInvocation.getInterfaceName());
			if (serverObj == null) {
				objOutputStream.writeObject(new RemoteInvocationResult(null));
				throw new SpringRpcException("interface [" + remoteInvocation.getInterfaceName() + "] should configure in service.properties");
			}
			Method method = serverObj.getClass().getMethod(remoteInvocation.getMethodName(), remoteInvocation.getParameterTypes());
			returnObj = method.invoke(serverObj, remoteInvocation.getArguments());
			objOutputStream.writeObject(new RemoteInvocationResult(returnObj));
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

좋은 웹페이지 즐겨찾기