代码之家  ›  专栏  ›  技术社区  ›  Thom

设置属性以在tomcat启动时禁用ehcache

  •  1
  • Thom  · 技术社区  · 7 年前

    我对这个项目还不熟悉,但仍有很多事情要想清楚。多年来一直是一名经验丰富的web开发人员。

    我的QA人员来找我说,“我们有个问题。我们过去可以关闭QA框上的hibernate缓存,在应用程序外运行查询,然后在应用程序中查看结果,但现在已经不起作用了。”

    所以我研究了这个问题,他们把下面的一行设置环境蝙蝠(在Windows Server 2012 R2 Standard上运行的Tomcat 7),

    set JAVA_OPTS=%JAVA_OPTS% -Dnet.sf.ehcache.disabled=true
    

    根据他们的说法,这个以前有用,但现在不行了。

    所以,问题一是,我们在开发环境中运行应用程序的方式与在QA和生产环境中运行应用程序的方式不同。(我知道,我知道)我们运行maven脚本来启动一切,我可以让javaopts正常工作。

    有趣的是,我做这个已经很多年了,我对这个一无所知设置环境蝙蝠. 我在这里读过: https://tomcat.apache.org/tomcat-7.0-doc/RUNNING.txt 上面说设置环境蝙蝠将tomcat作为服务运行时不起作用。

    所以,我登录到QA框,挖掘并发现,果然,tomcat是作为服务运行的。服务启动tomcat7.exe//RS//tomcat7。(不确定tomcat7.exe是什么。)

    所以根据上面的文件,我设置了CATALINA\u选项=-数据集.sf.ehcache.disabled=true并重新启动服务器。

    同时,我还编写了一个方便的小servlet来转储所有的系统属性,这样我就可以立即知道我的更改有什么影响。我运行它,它说 net.sf.ehcache.disabled=false . 很明显,有什么东西压倒了我的改变。

    所以我在这里读到: https://tomcat.apache.org/tomcat-7.0-doc/windows-service-howto.html 并将环境变量设置为PR\u JvmOptions=-数据集.sf.ehcache.disabled=true并重新启动服务器。运行我的小servlet并:

    net.sf.ehcache.disabled=false
    

    所以,很明显,不管我做什么,都有东西在覆盖我的设置。医生说它忽略了设置环境蝙蝠我不知道还能在哪里找到这个超控。

    0 回复  |  直到 7 年前