首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生产中的Javalite框架

生产中的Javalite框架
EN

Stack Overflow用户
提问于 2019-05-18 16:03:30
回答 2查看 120关注 0票数 0

我将发布基于Javalite框架的webapp的第一个版本。多亏了这一框架,它使发展迅速:)。以下是我的生产环境中的一些目标。

  1. 我想使用maven-assembly-plugin将所有依赖项组装到一个jar中,名为myapp-with-dependencies.jar
  2. 我想使用命令行:java -jar myapp-with-dependencies.jar运行这个webapp,这样我就可以为myapp创建守护进程服务。

我在github上检查了Javalite的所有示例应用程序,下面列出了开发env中的Main.java条目

代码语言:javascript
复制
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", "/");只在开发模式下工作?以及如何将其转变为生产模式?

这个问题可能与嵌入式码头有关。如果您有在生产env上传送Javalite的经验,您愿意分享吗?谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-20 01:06:30

您发现的示例是运行的一种非常简单的方法。您提出的另一个问题是关于在不同环境中运行的ActiveWeb项目。

请看http://javalite.io/app-config。我们总是使用AppConfig从与当前环境相对应的属性文件中加载属性。该页面包含了为不同环境设置系统所需的所有信息。

步骤1:

代码语言:javascript
复制
/app_config
        |
        +--global.properties
        |
        +--development.properties
        |
        +--staging.properties
        |
        +--production.properties

步骤2

将属性添加到属性文件中,例如development.properties

代码语言:javascript
复制
first.name=John
phrase= And the name is ${first.name}

步骤3

使用p()方法拉出属性:

代码语言:javascript
复制
import static org.javalite.app_config.AppConfig.p;
...
System.out.println(p("phrase"));

当您在本地运行时,默认情况下它将读取development.properties文件。

如果设置了环境变量ACTIVE_ENV=production,则代码将从production.properties文件中读取。

我们如何在生产环境中运行JavaLite应用程序.

通常,我们使用Jetty插件进行开发--有很多这样的例子:https://github.com/javalite

我们的标准Maven构建创建了一个WAR文件,它将所有依赖项都包含在WEB_INF/lib下的jar文件中-也就是说,我们不创建带有依赖项的jar。一旦我们有了这个WAR文件,我们就会将它部署到一个标准的生产容器上,就像任何其他Java (JBoss、Tomcat等)一样。

票数 1
EN

Stack Overflow用户

发布于 2019-05-19 16:43:29

好像你在问两件不同的事情。

你想要一个自动执行的罐子,里面有你需要的所有东西吗?如果是这样的话,那么您将使用ServletContextHandler而不是WAR或WebAppContext

请参见:

和示例项目在

如果您想使用WebAppContext并让它自动执行,那么基本上就会有一种被称为“现场战争”的东西。

最基本的是,您将有多个maven (或gradle)项目来管理您需要的不同层,以完成这种实战设置。

请参见:

和示例项目在

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56200663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档