生产环境中的 Javalite 框架
Javalite framwork in production env
我将推出第一个基于 Javalite 框架的 webapp 版本。感谢框架,它使开发迅速:)。这是我的生产环境中的一些目标。
- 我想使用
maven-assembly-plugin
将所有依赖项 assemble 放入一个 jar 中,命名为 myapp-with-dependencies.jar
- 我想 运行 使用命令行的 webapp:
java -jar myapp-with-dependencies.jar
,这样我就可以为 myapp
创建守护进程服务
我已经检查了 github 上 Javalite 存储库的所有示例应用程序,下面列出了开发环境 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 的经验,可以分享一下吗?谢谢!
您似乎在问 2 个不同的问题。
你想要一个自动执行的 jar 包吗?
如果是这样,那么您将使用 ServletContextHandler
而不是 WAR 或 WebAppContext
.
参见:
示例项目位于
如果您想使用 WebAppContext
并让它自动执行,那么基本上您将拥有所谓的 "Live War".
基础知识是您将拥有多个管理不同层的 Maven(或 gradle)项目,您将需要完成这种 live-war 设置。
参见:
- Error while executing WAR file
示例项目位于
您找到的示例是 运行 嵌入 Jetty 的一种非常简单的方法。您问的另一个问题是关于 运行 在不同环境中的 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}
步骤 3
使用 p()
方法提取属性:
import static org.javalite.app_config.AppConfig.p;
...
System.out.println(p("phrase"));
当您在本地 运行 时,它会默认读取 development.properties
文件。
如果您设置环境变量 ACTIVE_ENV=production
,那么您的代码将从 production.properties
文件中读取。
我们如何 运行 Java生产环境中的精简版应用程序。
通常,我们使用 Jetty Maven 插件进行开发 - 有很多这样的例子:https://github.com/javalite
我们的标准 Maven 构建会创建一个 WAR 文件,其中将所有依赖项作为 jar 文件包含在 WEB_INF/lib 下 - 也就是说,我们不会创建具有依赖项的 jar。
一旦我们有了那个 WAR 文件,我们就将它部署在一个标准的生产容器上,就像任何其他 Java 应用程序(JBoss、Tomcat 等)一样。
我将推出第一个基于 Javalite 框架的 webapp 版本。感谢框架,它使开发迅速:)。这是我的生产环境中的一些目标。
- 我想使用
maven-assembly-plugin
将所有依赖项 assemble 放入一个 jar 中,命名为myapp-with-dependencies.jar
- 我想 运行 使用命令行的 webapp:
java -jar myapp-with-dependencies.jar
,这样我就可以为myapp
创建守护进程服务
我已经检查了 github 上 Javalite 存储库的所有示例应用程序,下面列出了开发环境 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 的经验,可以分享一下吗?谢谢!
您似乎在问 2 个不同的问题。
你想要一个自动执行的 jar 包吗?
如果是这样,那么您将使用 ServletContextHandler
而不是 WAR 或 WebAppContext
.
参见:
示例项目位于
如果您想使用 WebAppContext
并让它自动执行,那么基本上您将拥有所谓的 "Live War".
基础知识是您将拥有多个管理不同层的 Maven(或 gradle)项目,您将需要完成这种 live-war 设置。
参见:
- Error while executing WAR file
示例项目位于
您找到的示例是 运行 嵌入 Jetty 的一种非常简单的方法。您问的另一个问题是关于 运行 在不同环境中的 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}
步骤 3
使用 p()
方法提取属性:
import static org.javalite.app_config.AppConfig.p;
...
System.out.println(p("phrase"));
当您在本地 运行 时,它会默认读取 development.properties
文件。
如果您设置环境变量 ACTIVE_ENV=production
,那么您的代码将从 production.properties
文件中读取。
我们如何 运行 Java生产环境中的精简版应用程序。
通常,我们使用 Jetty Maven 插件进行开发 - 有很多这样的例子:https://github.com/javalite
我们的标准 Maven 构建会创建一个 WAR 文件,其中将所有依赖项作为 jar 文件包含在 WEB_INF/lib 下 - 也就是说,我们不会创建具有依赖项的 jar。 一旦我们有了那个 WAR 文件,我们就将它部署在一个标准的生产容器上,就像任何其他 Java 应用程序(JBoss、Tomcat 等)一样。