我正在尝试使用他们的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进行通信。
答案 0 :(得分:1)
找到它。使用firebug进行调试后,看起来页面根本没有重新加载。只是缓存页面再次显示。
您必须使用以下三行代码在控制器中手动关闭缓存:
response.setHeader("Cache-control", "no-cache, no-store");
response.setHeader("Pragma", "no-cache");
response.setHeader("Expires", "-1");