[英]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.