Heroku仅适用于Refresh

时间:2013-03-22 16:37:36

标签: java heroku neo4j

我正在尝试使用他们的Neo4j插件在Heroku上开发Neo4J云应用程序。我还在尝试几个功能,所以它只是一个演示应用程序,但我已经遇到了问题。

我的应用程序是这样构建的: 我有一个主页,其中有一个表格,显示连接到参考节点的所有节点。在这个主页上有一个添加随机节点的链接。

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

最后三个参数是master.jsp中包含的文件名(没有jsp),使用。

Addnode.do 完全相同,只是它更改了testuser的值,在设置NodeBeans属性之前,它执行此操作:

da.createRandomNode();

这基本上会为数据库创建一个随机节点。

在当地,这一切都像一个魅力。当我推到Heroku时,有一个问题。

当我打开时,它仍会打开“bla.herokuapps.com/home.do”,这很好。它向我展示了节点表。当我单击添加节点的链接时,URL确实已更改为“bla.herokuapp.com/addnode.do”,它应该添加节点,但它不会。但是,随着“addnode.do”操作而更改的testuser属性会发生变化。当我将网址设置为“bla.herokuapps.com/addnode.do”时刷新页面时,它会添加一个节点,并在表格中显示此新节点。

因此页面之间的整个切换效果很好。唯一的问题是,在刷新页面之前,单击addnode链接不会在Neo4j数据库中创建新节点。

供参考:我正在使用neo4j-rest-graphdb与数据库通信。它是一个远程客户端库,用于与其他API进行通信。

1 个答案:

答案 0 :(得分:1)

找到它。使用firebug进行调试后,看起来页面根本没有重新加载。只是缓存页面再次显示。

您必须使用以下三行代码在控制器中手动关闭缓存:

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