2015-08-18 29 views
0

我正在開發一個基於Java的應用程序,它必須在PROD中部署到Google App Engine。我需要在web.xml中設置<secure>true</secure>標誌,以便部署到PROD時。不過,我正在使用我的工作站上的appengine:devserver進行測試,並且我使用的是http(不是https),所以我必須將其設置爲<secure>false</secure>或將其註釋掉。切換的最快方法<secure> web.xml中的true或false

問題:什麼是最簡單的自動化方法?我知道這可能與maven配置文件,但有一些谷歌Eclipse插件的插件或另一種方式,我錯過了?我的項目是基於Maven的,我從命令行或在IDE中啓動devserver ...

+0

可以設置Java系統屬性或O GAE中的/ S環境變量? –

+0

是的,可以在appengine-web.xml清單文件中設置系統屬性,它成爲部署的WAR文件的一部分 –

回答

0

我發現,如果我只使用appengine:devserver啓動webapp,我們不需要關心true。所以,如果我簡單地改變啓動webapp的方式,這不是問題。只有當您使用Tomcat,jBoss或您自己的碼頭服務器啓動webapp時纔會出現問題。不過我認爲能夠從GAE以外的其他應用程序運行該應用程序的良好習慣只是爲了確保我們不綁定到特定的引擎(服務器無關模式)...

1

您是否試過SessionCookieConfig並將其設置爲編程? (例如:取決於環境變量)

+0

像這樣? http://alvinalexander.com/java/jwarehouse/javaee6/web/servlet/sessioncookieconfig-war/src/java/web/servlet/sessioncookieconfig_war/ConfigListener.java.shtml –

+1

確實如此。您可以使用maven-surefire-plugin的systemPropertyVariables或IDE的測試啓動參數對其進行測試,並且在PROD env中只需使用-D arg啓動虛擬機。 –

+0

很高興使用該解決方案,但Google App Engine仍然不支持Servlet api 3.x,這是一個恥辱。 https://code.google.com/p/googleappengine/issues/detail?id=3091 –