2013-03-22 64 views
0

我試圖在Heroku上開發一個Neo4J Cloud應用程序,使用它們的Neo4j插件。我仍然嘗試了幾個功能,所以它只是一個演示應用程序,但我已經遇到了一個問題。Heroku僅適用於刷新

我的應用程序是這樣構建的: 我有一個表格顯示連接到參考節點的所有節點。在這個主頁上有一個鏈接添加一個隨機節點。

有我的servlet定義了兩個行動,做到以下幾點:

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); 

其中最後三個參數是文件名(不含JSP),它包括在master.jsp,使用。

Addnode.do不完全一樣的,只是它改變TESTUSER的價值,並設置NodeBeans屬性它在此之前:

da.createRandomNode(); 

這基本上創建一個隨機的節點數據庫。

在本地,這一切都像一個魅力。當我推到Heroku時,有一個問題。

當我打開時,它仍然打開到「bla.herokuapps.com/home.do」,這很好。它顯示了節點的表格。當我點擊添加節點的鏈接時,URL確實更改爲「bla.herokuapp.com/addnode.do」應該添加節點,但不會。 testuser屬性也會隨着「addnode.do」操作而發生變化,但是會發生變化。當我刷新頁面時,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"); 
相關問題