2013-03-22 2 views
0

Neo4j 부가 기능을 사용하여 Heroku에서 Neo4J 클라우드 애플리케이션을 개발하려고합니다. 나는 여전히 여러 기능을 시험 중이므로 데모 애플리케이션이지만 이미 문제가 발생했다.Heroku는 새로 고침으로 만 작동합니다.

내 응용 프로그램은 다음과 같이 구성됩니다. 참조 노드에 연결된 모든 노드를 보여주는 테이블이있는 홈페이지가 있습니다. 이 홈페이지에는 임의의 노드를 추가하는 링크가 있습니다.

다음을 수행 내 서블릿에 정의 된 두 가지 작업이 있습니다 : 마지막 세 개의 매개 변수가 파일 이름에 포함되는 JSP (없이) 어디

Home.do

request.setAttribute("testuser", "test"); 
DataAccess da = new DataAccess(); 
request.setAttribute("NodeBeans", da.getAllNodes()); 

request.setAttribute("pageheader", "header"); 
request.setAttribute("pagecontent", "home"); 
request.setAttribute("pagefooter", "footer"); 
request.getRequestDispatcher("/master.jsp").forward(request, response); 

가 master.jsp를 사용하여.

Addnode.do은 testuser를의 값을 변경하는 것을 제외하고 NodeBeans 그것은이 작업을 수행 속성을 설정하기 전에 정확히 같은 일 : 기본적으로 데이터베이스에 임의의 노드를 생성

da.createRandomNode(); 

합니다.

지역적으로 모든 것이 매력처럼 작동합니다. 헤로쿠에 가면 문제가 생깁니다.

열면 "bla.herokuapps.com/home.do"으로 열립니다. 노드의 표를 보여줍니다. 노드를 추가하는 링크를 클릭하면 실제로 URL이 "bla.herokuapp.com/addnode.do"으로 변경되어 노드를 추가해야하지만 그렇지 않습니다. 그러나 "addnode.do" 조치로 변경되는 testuser 속성은 변경됩니다. URL이 "bla.herokuapps.com/addnode.do"으로 설정된 경우 페이지를 새로 고치면 노드가 추가되고 테이블에이 새 노드가 표시됩니다.

따라서 전체 페이지 사이를 전환하는 것이 좋습니다. 유일한 문제는 페이지를 새로 고칠 때까지 addnode 링크를 클릭해도 Neo4j 데이터베이스에 새 노드가 만들어지지 않는다는 것입니다.

참조 용 : 데이터베이스와의 대화를 위해 neo4j-rest-graphdb를 사용하고 있습니다. 나머지 API와 대화하기위한 원격 클라이언트 라이브러리입니다.

답변

1

발견. 방화 광에서 디버깅 한 후 페이지가 전혀 다시로드되지 않은 것 같습니다. 캐시 된 페이지가 다시 표시되었습니다.

response.setHeader("Cache-control", "no-cache, no-store"); 
response.setHeader("Pragma", "no-cache"); 
response.setHeader("Expires", "-1"); 
:

당신은 코드의 다음 세 줄을 사용하여 컨트롤러에서 수동으로 캐싱을 해제해야

관련 문제