簡體   English   中英

生產環境中的Javalite框架

[英]Javalite framwork in production env

我將基於Javalite框架發布webapp的第一個版本。 感謝框架,它使發展迅速:)。 這是我的制作環境中的一些目標。

  1. 我想使用maven-assembly-plugin將所有依賴項組裝到一個jar中,命名為myapp-with-dependencies.jar
  2. 我想使用以下命令行運行webapp: 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM