2016-11-03 35 views
0

我想重寫maxPostSize屬性連接器元素在server.xml配置文件中。 (設置最大大小爲1MB)Cloud Foundry Java Buildpack:如何更改Tomcat的server.xml中的值?

唯一能做到這一點的方法是分叉https://github.com/cloudfoundry/java-buildpack並更改現有的server.xml配置文件?

還有可能在我的WAR文件的某個地方添加一個server.xml,這樣就可以使用這個而不是buildpack中存在的那個。

或者我還可以使用JAVA_OPTS嗎?

回答

0

我相信這將記錄您的所有官方選項:https://github.com/cloudfoundry/java-buildpack/blob/master/docs/container-tomcat.md#additional-resources

這兩個國家都非常簡單/容易。

您可以考慮將您的應用程序更改爲彈簧引導應用程序。我不是一個啓動專家,但我相信即使打包類型是.war,java buildpack也可以使用啓動嵌入式tomcat。在這種類型的配置中,您可以使用引導來定製它如何啓動嵌入式tomcat來自定義諸如maxPostSize之類的東西。

1

是否只有這樣才能分叉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.xml,context.xml,web.xml以及任何通常在Tomcat的conf/目錄下的東西。
  • 你主持了一個index.yml和那個HTTP服務器上的TAR文件。如果您沒有,可以使用Static File構建包將其作爲應用程序推送到CF。
  • 您可以使用環境變量JBP_CONFIG_TOMCAT將Java構建包指向此配置回購。下面是一個例子:` 「{Tomcat的:{external_configuration_enabled:真},external_configuration:{repository_root:\」 url_to_repo \ 「}}」

更多關於結構爲HTTP服務器上的文件,可以發現here

+0

我在幫助頁面上也找到了這個選項,但是這真的聽起來不安全和繁瑣的地方在這個文件的主機。也許更好的選擇是使用Spring-Boot和自包含的Tomcat,我可以覆蓋一些設置? –

+1

這裏是一個很好的問題,在這個評論中,buildpack開發者解釋了他們爲什麼採用這種方法:https://github.com/cloudfoundry/java-buildpack/issues/316請記住,您可以將配置託管在靜態應用程序中使用很少的內存)與您的應用程序在相同的空間。可能會讓它感覺不那麼沉重。 – youngm

+0

如果您考慮多個應用程序使用的配置,則HTTPS存儲庫更有意義。如果只有一個需要特殊配置的應用程序,這有點麻煩。在CF上將你的配置作爲一個小型(例如:32M)應用程序使用,這使得它更加美觀。如果你不想去HTTP服務器路由,我想你可以製作一個修改Tomcat配置的'.profile.d /'腳本。腳本可以像複製你嵌入到應用中的配置文件一樣簡單,或者它可以用'sed'或類似的東西編輯。這有點黑客,但應該工作。 –

相關問題