【问题标题】:How can I enable java assertions in Tomcat如何在 Tomcat 中启用 java 断言
【发布时间】:2011-10-30 13:03:40
【问题描述】:

我想在我的 Spring web 应用程序中使用 Java assert 关键字,主要用于我的域类(检查构造函数中的不变量),但我看不到如何启用运行时断言检查。

对于普通的 java 应用程序,我会在 java 命令中使用 -ea 开关,但我不知道如何使用 Tomcat 等来做到这一点。

这是推荐的东西,还是我应该使用 Spring 框架中的“Assert”类?不过,我宁愿让我的域类不依赖于 Spring。

【问题讨论】:

    标签: java tomcat spring-mvc


    【解决方案1】:

    对于 tomcat,将 -ea 添加到 JAVA_OPTS(所有 java 进程都已启动),或者更好地添加到 CATALINA_OPTS(仅限 Web 应用程序引擎)。

    阅读文件catalina.batcatalina.sh 以获取有关JAVA_OPTSCATALINA_OPTS 的更多信息。

    已编辑:感谢@Joachim的cmets

    【讨论】:

    • 谢谢你,但是 a) 我在 Eclipse 中使用(用于开发)VMware tc Server(有 catalina.bat 吗?b)我宁愿只在我的拥有自己的网络应用程序和 c) 我如何使用 VMWares CloudFoundry 之类的东西来做到这一点?再次感谢!
    • 更严肃地说:CATALINA_OPTS 在这里更合适。不同之处在于,JAVA_OPTS 将用于 Tomcat 启动脚本中的 所有 Java 调用(包括“连接到正在运行的服务器并要求其关闭”脚本),其中 CATALINA_OPTS只会用于实际运行服务器。在这种情况下,差异并不太重要,但对于内存之类的东西,使用正确的非常重要(您不希望微小的关闭脚本分配 4 GB 的内存)。
    • @DecaniBass:从技术上讲,应该可以在每个 webapp 的基础上启用断言,因为有 ClassLoader.setDefaultAssertionStatus() 但不幸的是我不知道 if这些应用程序服务器如何公开该选项。
    • 您也可以使用 DEBUG_OPTS,这将允许您只启用此功能的 dev/qa 环境。
    猜你喜欢
    • 2011-07-07
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 2015-02-10
    • 1970-01-01
    • 1970-01-01
    • 2010-12-25
    相关资源
    最近更新 更多