spring http invoker 학습 노트

콘 셉 트
Spring HTTP invoker 는 spring 프레임 워 크 의 원 격 호출 모델 로 HTTP 기반 원 격 호출 을 실행 하고 자바 의 직렬 화 체 제 를 사용 하여 네트워크 에서 대상 을 전달 합 니 다.
능률.
원 격 호출 효율:rmi>spring http invoker>웹 서비스
장점.
1.spring http invoker 는 자바 의 직렬 화 체 제 를 사용 하고 rmi 와 유사 한 방식 으로 호출 합 니 다.http 프로 토 콜 을 사용 하여 방화벽 을 쉽게 통과 할 수 있 을 뿐만 아니 라 효율 적 인 원 격 호출 도 보장 할 수 있 습 니 다.
2.경량급 원 격 호출 모델 은 spring 을 사용 하 는 항목 에 틈새 없 이 삽입 할 수 있 고 침입 성 이 적 습 니 다.
3.아주 간단 해서 손 에 넣 기 쉽다.
예시
서버
1.web.xml

<servlet>  
        <servlet-name>service</servlet-name>  
        <servlet-class>  
            org.springframework.web.servlet.DispatcherServlet   
        </servlet-class>  
        <load-on-startup>1</load-on-startup>  
</servlet>
<servlet-mapping>  
        <servlet-name>service</servlet-name>  
        <url-pattern>/httpservice/*</url-pattern>  
</servlet-mapping>

2.spring 프로필

<beans>
	<bean id="userInfoServiceProxy" class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter">
		<property name="service" ref="userInfoService"/>
		<property name="serviceInterface" value="cn.gov.zjport.skeleton.sso.UserInfoService"/>
	</bean>
</beans>

그 중에서 userInfoService 는 프로젝트 에 있 는 service 입 니 다.
3.웹-inf 디 렉 터 리 에 service-servlet.xml 를 추가 합 니 다.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
	<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">  
        <property name="mappings">  
            <props>  
                  <prop key="/userInfoService">userInfoServiceProxy</prop>
            </props>  
        </property>  
	</bean> 
</beans>

이로써 서버 발표 가 완료 되 었 습 니 다.
클 라 이언 트
1.spring 프로필

<bean id="userInfoService" class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">  
        <property name="serviceUrl" value="http://<server>:<port>/<domain>/httpservice/userInfoService"/>  
        <property name="serviceInterface" value="cn.gov.zjport.skeleton.sso.UserInfoService"/>  
	</bean>

2.호출 코드

    String xml=userInfoService.getUserInfo("simpleadmin", true);

원 격 호출 코드 가 아 닌 것 과 같 습 니 다.
유닛 테스트
클 라 이언 트 가 유닛 테스트 만 하려 면 spring 을 통합 하려 면 비교적 무 겁 습 니 다.다음 코드 테스트 서비스 인 터 페 이 스 를 사용 할 수 있 습 니 다.

HttpInvokerProxyFactoryBean bean = new HttpInvokerProxyFactoryBean();
bean.setServiceInterface(UserInfoService.class);
bean.setServiceUrl("http://<server>:<port>/<domain>/httpservice/userInfoService");
bean.afterPropertiesSet();
UserInfoService userInfoService= (UserInfoService) bean.getObject();
String xml=userInfoService.getUserInfo("simpleadmin", true);

좋은 웹페이지 즐겨찾기