【问题标题】:Cloud Foundry Java Buildpack : how to change value in server.xml for Tomcat?Cloud Foundry Java Buildpack:如何更改 Tomcat server.xml 中的值?
【发布时间】:2016-11-03 18:42:54
【问题描述】:

我想覆盖 server.xml 配置文件中 Connector 元素中的值 ma​​xPostSize 属性。 (将最大大小设置为 1MB)

唯一的方法是 fork https://github.com/cloudfoundry/java-buildpack 并更改现有的 server.xml 配置文件吗?

或者是否也可以在我的 WAR 文件中的某处添加server.xml,以便使用这个来代替 buildpack 中存在的那个。

或者我也可以使用 JAVA_OPTS 吗?

【问题讨论】:

    标签: java spring tomcat cloud-foundry buildpack


    【解决方案1】:

    唯一的方法是 fork https://github.com/cloudfoundry/java-buildpack 并更改现有的 server.xml 配置文件吗?

    使用 3.7+ 版本的 Java 构建包,您可以覆盖 Tomcat 配置,而无需分叉构建包。该功能称为“外部 Tomcat 配置”。

    https://github.com/cloudfoundry/java-buildpack/blob/master/docs/container-tomcat.md#external-tomcat-configuration

    以下是其工作原理的要点。

    • 您制作了tomcat/conf 目录的TAR 文件。这可以包含诸如server.xmlcontext.xmlweb.xml 之类的内容,以及通常位于 Tomcat 的conf/ 目录下的任何内容。
    • 您将index.yml 和该 TAR 文件托管在 HTTP 服务器的某个位置。如果您没有,您可以使用静态文件构建包将其作为应用程序推送到 CF。
    • 您使用环境变量JBP_CONFIG_TOMCAT 将Java 构建包指向此配置存储库。下面是一个例子:`"{ tomcat: { external_configuration_enabled: true }, external_configuration: { repository_root: \"url_to_repo\" } }"

    有关 HTTP 服务器上文件结构的更多信息,请参阅here

    【讨论】:

    • 我在帮助页面上也找到了这个选项,但是在某处托管这个文件听起来确实不安全而且很麻烦。也许更好的选择是将 Spring-Boot 与独立的 Tomcat 一起使用,我可以在其中覆盖一些设置?
    • 这是一个很好的问题,在 cmets 中,buildpack 开发人员解释了他们为什么采用这种方法:github.com/cloudfoundry/java-buildpack/issues/316 请记住,您可以将配置托管在静态应用程序(使用很少的内存)中空间作为您的应用程序。可能会帮助它感觉不那么沉重。
    • 如果您从多个应用程序使用的一种配置的角度考虑 HTTPS 存储库,它会更有意义。如果只有一个应用需要特殊配置,那就有点麻烦了。将您的配置推送为 CF 上的小型(例如:32M)应用程序会使这更加可口。如果您不赞成使用 HTTP 服务器路由,我想您可以编写一个 .profile.d/ 脚本来修改 Tomcat 配置。脚本可以像复制您嵌入应用程序的配置文件一样简单,也可以使用sed 或类似的东西进行编辑。这有点小技巧,但应该可以。
    【解决方案2】:

    我相信这将记录您的所有官方选项:https://github.com/cloudfoundry/java-buildpack/blob/master/docs/container-tomcat.md#additional-resources

    两者都不是很简单/容易。

    您可以考虑将您的应用程序更改为 Spring Boot 应用程序。我不是引导专家,但我相信即使打包类型是 .war,java buildpack 也可以使用引导嵌入式 tomcat。在这种类型的配置中,您也许可以使用 boot 来自定义它如何启动嵌入式 tomcat 来自定义诸如 maxPostSize 之类的东西。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-29
      • 1970-01-01
      • 2023-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-08
      • 2019-03-26
      相关资源
      最近更新 更多