Cloud Foundry Java Buildpack:如何在Tomcat的server.xml中更改值?

时间:2016-11-03 18:42:55

标签: java spring tomcat cloudfoundry buildpack

我想覆盖server.xml配置文件中连接器元素中的值 maxPostSize 属性。 (将最大大小设置为1MB)

执行此操作的唯一方法是分叉https://github.com/cloudfoundry/java-buildpack并更改现有的server.xml配置文件吗?

或者也可以在我的WAR文件中的某处添加server.xml,以便使用此文件而不是buildpack中存在的那个。

或者我也可以使用JAVA_OPTS吗?

2 个答案:

答案 0 :(得分:2)

  

执行此操作的唯一方法是分叉https://github.com/cloudfoundry/java-buildpack并更改现有的server.xml配置文件吗?

使用Java构建包的3.7+版本,您可以覆盖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/目录下的所有内容。
  • 您在HTTP服务器上托管index.yml和该TAR文件。如果您没有,可以使用静态文件构建包将其作为应用程序推送到CF.
  • 使用环境变量JBP_CONFIG_TOMCAT将Java构建包指向此配置存储库。这是一个例子:`" {tomcat:{external_configuration_enabled:true},external_configuration:{repository_root:\" url_to_repo \" }"

可以在here

找到有关HTTP服务器上文件结构的更多信息

答案 1 :(得分:0)

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

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

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