2012-08-29 4 views
0

Spring remoting documentation으로 서비스를 설정했지만 클라이언트 애플리케이션에서 저장소와 동일한 HTTP 세션을 재사용하면서 서비스 메소드를 호출하고 싶습니다. (모든 호출에서 해당 데이터를 쿼리하지 않고) 서버의 세션 관련 데이터를 가져옵니다.Spring에서 Hessian 웹 서비스 호출 간의 HTTP 세션 유지

이것이 가능합니까?

클라이언트 측 스프링 서비스 구성 :

<bean id="partnersServiceImpl" class="org.springframework.remoting.caucho.HessianProxyFactoryBean"> 
    <property name="serviceUrl" value="http://localhost:8080/partners" /> 
    <property name="serviceInterface" value="somePackage.PartnersService" /> 
</bean> 

현재라는 모든 방법은 새로운 sessionID와 생성

PartnersService partners = (PartnersService) context.getBean("partnersServiceImpl"); 

List<?> partnersList = partners.getSomeData(2011); // Will have one SessionID 
partnersList = partners.getSomeData(2012); // Will have a new SessionID 

답변

0

는 응용 프로그램의 맨 처음에이 코드를 넣어보십시오 :

CookieHandler.setDefault(new CookieManager(null, CookiePolicy.ACCEPT_ALL)); 

그것은 쿠키 지원 활성화를위한 간단한 설정입니다. 자세한 내용은 javadocs를 참조하십시오. 나도 Hessian 리모팅을 가지고있다. 그리고 이것은 트릭을했다.

1

체크 아웃 HessianProxy.sendRequest()의 소스 코드 - 그것은 서버에 연결하는 표준 URLConnection를 사용하고 쿠키를 처리하지 않습니다. 따라서 헤 시안은 쿠키를 전혀 지원하지 않는다고 생각합니다. 모든 HTTP는 전송 프로토콜 일 뿐이며 쿠키는 브라우저 관련 기술입니다.