Java 웹 응용 프로그램에 HDIV 웹 응용 프로그램 보안 프레임 워크를 사용하고 있습니다. 모든 새로운 웹 페이지 요청은 캐시되고 보안 검사에 사용되는 hdiv 내부 보안 정보를 생성합니다.hdiv에서 캐시 제거 전략을 변경하는 방법
나는 다음과 같은 szenario 있습니다
내가 뭔가에 추가 또는 장바구니에서 삭제 될 때 2 초 확인 페이지를 팝업 한 주문 페이지가 있습니다.
팝업이 50 개 발생하면 언더 레이 주문 페이지가 캐시에서 제거되어 앱에 오류가 발생합니다.
누구나 기본 페이지를 유지하기 위해 hdiv 캐시 제거 전략에 영향을주는 방법을 알고 있습니까? 주위
한 가지 방법은 500
50에서 org.hdiv.session.StateCache.maxSize을 증가시키는 것이다 그러나 이것은뿐만 아니라 근본 원인 증상을 치료한다.
업데이트 :
나는 20에이 maxSize을 변경하고 검증하기 위해 원래 org.hdiv.session.StateCache
를 사용하는 succeded 솔루션을 @rbelasko 사용하여 cachentries 20 개 항목 이후에 해고되는 디버그 로그.
난 내 자신의 구현을 사용하도록 변경이 didn를-t 작업
Bean 정의
디버그 로그에서 내 자신의 클래스public class StateCacheTest extends StateCache
{
private static final Log log = LogFactory.getLog(StateCacheTest.class);
public StateCacheTest()
{
log.debug("StateCache()");
}
@Override
public void setMaxSize(final int maxSize)
{
super.setMaxSize(maxSize);
if (log.isDebugEnabled())
{
log.debug("setMaxSize to " + maxSize);
}
}
}
어떤 항목에서이 없었다
<bean id="cache" class="com.mycompany.session.StateCacheTest" singleton="false"
init-method="init">
<property name="maxSize">
<value>20</value>
</property>
</bean>
StateCacheTest
아이디어가 있으십니까?
업데이트 2 :
은 내가 덜
<hdiv:config ... maxPagesPerSession="200" ... />
에게 콩을 설정 정의
를 사용하여 난이 오류를 만들 수 있었다 스프링을 통해 다른 IStateCache 구현을로드 할 수없는 동안<property name="maxSize">
<value>20</value>
</property>
은 내 시스템의 캐시 크기에 영향을 미치지 않았습니다.
당신은 나에게 내 자신의 구현'com.mycompany.session.StateCacheTest'와'org.hdiv.session.StateCache'을 교체하는 방법을 예를 들어 줄 수 있습니까? 내 업데이트 된 질문보기 – k3b
HDIV 사용자 정의 스키마 (hdiv :)를 사용하고 있습니까? 명시 적 구성 (구식)을 사용하는 경우 하나의 "캐시"bean 만 정의하면 작동해야합니다. 즉, defaulta 캐시 빈을 삭제하고 빈을 추가하십시오. – rbelasko