2013-03-22 63 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"); 
相关问题