![](/img/trans.png)
[英]Javalite framework - problem with locating existing FreeMarker templates
[英]Javalite framwork in production env
我將基於Javalite框架發布webapp的第一個版本。 感謝框架,它使發展迅速:)。 這是我的制作環境中的一些目標。
maven-assembly-plugin
將所有依賴項組裝到一個jar中,命名為myapp-with-dependencies.jar
java -jar myapp-with-dependencies.jar
,以便可以為myapp
創建守護程序服務 我已經在github上檢查了Javalite repo的所有示例應用程序,下面列出了開發環境中的Main.java
條目
public class Main {
public static void main(String[] args) throws Exception {
Server server = new Server(8080);
WebAppContext webapp = new WebAppContext("src/main/webapp", "/"); // <- should package as war in production?
webapp.addAliasCheck(new AllowSymLinkAliasChecker());
server.setHandler(webapp);
server.start();
server.dumpStdErr();
server.join();
}
}
new WebAppContext("src/main/webapp", "/");
僅適用於開發模式? 以及如何將其更改為生產模式?
該問題可能與嵌入式碼頭有關。 如果您有任何在生產環境中運送Javalite的經驗,是否可以分享? 謝謝!
您發現的示例是運行Jetty Embedded的非常簡單的方法。 您詢問的另一個問題是有關在不同環境中運行的ActiveWeb項目的信息。
請參閱http://javalite.io/app-config 。 我們始終使用AppConfig從對應於當前環境的屬性文件中加載屬性。 該頁面包含為不同環境設置系統所需的所有信息。
第1步:
/app_config
|
+--global.properties
|
+--development.properties
|
+--staging.properties
|
+--production.properties
第2步
將屬性添加到您的屬性文件中,例如development.properties
:
first.name=John
phrase= And the name is ${first.name}
第三步
使用p()
方法提取屬性:
import static org.javalite.app_config.AppConfig.p;
...
System.out.println(p("phrase"));
在本地運行時,默認情況下它將讀取development.properties
文件。
如果您設置環境變量ACTIVE_ENV=production
,那么您的代碼將從production.properties
文件中讀取。
我們如何在生產環境中運行JavaLite應用程序。
通常,我們使用Jetty Maven插件進行開發-有很多示例: https : //github.com/javalite
我們的標准Maven構建會創建一個WAR文件,其中會將所有依賴項作為jar文件包含在WEB_INF / lib下-也就是說,我們不會創建具有依賴項的jar。 一旦有了該WAR文件,便將其部署在標准生產容器上,就像其他任何Java應用程序(JBoss,Tomcat等)一樣。
好像您要問2種不同的事情。
您是否需要一個自我執行的jar,其中包含所需的一切? 如果是這樣,那么您將使用ServletContextHandler
而不是WAR或WebAppContext
。
看到:
還有示例項目
如果您想使用WebAppContext
並使其能夠自我執行,那么基本上您將擁有所謂的“ WebAppContext
”。
基本原理是,您將擁有多個管理不同層的Maven(或Gradle)項目,這些項目將需要進行這種實時的設置。
看到:
還有示例項目
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.