如何在一个jsp文件中包含一个ember应用程序并使用tomcat将其提供服务

时间:2019-07-02 07:49:01

标签: jsp tomcat ember.js handlebars.js

我是炭烬新手。我有一个ember应用程序,可以使用ember serve运行并查看输出。我想将此应用程序包含在一个jsp文件中,并从tomcat服务器(即端口8080)运行整个应用程序。我在一些帖子中看到可以在jsp中包含车把和路由,但我无法为其找到合适的教程。请提供正确的格式,以便在jsp文件中包括车把和路线。

2 个答案:

答案 0 :(得分:1)

让我们看看您现有的需求

  

要求是应将其包含在jsp文件中,例如   `jsp:include src:some / folder / myapp.hbs,请提供正确的格式以在javascript中包含把手。

为什么它需要放在jsp文件中? Tomcat可以很好地提供纯HTML文件。如果由于某些令人困惑的原因确实需要e.GetPosition(...),则在运行jsp之后,您的jsp将至少需要包含dist/index.html文件的全部内容。这是您要尝试的可疑路径中最纯正的方法。

我觉得您应该退后一步,考虑发生了什么。 Ember用Handlebars和ES6编写,它们需要编译/编译步骤才能最终成为可运行的ES5(对于glimmer,则为glimmer字节码)。您不能像将它们兼容那样直接将把手代码导入到jsp中。还必须将JSP转换为html,通常由Tomcat中的Jasper处理。 Jasper将无法编译车把,除非您将车把包装在脚本标签中。但是,有很多原因,这实际上是不可行的,例如使用具有适当范围的模板的ember模板编译器,ember中的模板解析系统,等等。

Ember / Angular风格SPA框架应用程序的标准体系结构是通过某些渠道(nginx,CDN,您的应用程序服务器)提供Ember服务,并让ember与以您想要的任何其他语言编写的REST api通信。通常需要在构建时(通过ember build --environment=production)或从REST端点提供任何需要添加到Ember应用程序的配置。

我在Spring Boot中使用Ember.js。我的体系结构是基于Spring Boot的API,该API监听8080,前面带有一个Apache SSL终止反向代理,该代理也为Ember应用服务。我将有一天改用nginx(但这条帖子既不在这里也不在)。

如果需要将动态行为添加到jsp,那么建议您考虑使用其他工具。如果您喜欢把手,请直接使用把手。使用glimmer.js。使用Vue。这根本不是Ember的全部含义,它只是痛苦和工作,同时一开始就放弃使用余烬的许多生产力优势。

答案 1 :(得分:0)

为了从Ember获得可服务的应用程序,您将需要运行ember build -e production。这将创建一个dist文件夹,其中包含index.html以及应用程序包含的所有javascript,css等资产。我不熟悉tomcat,但是您可以将这个目录简单地复制/粘贴到某处,并让tomcat读取它,这是了解各个部分如何组合的好起点。

要使其在生产中正常运行,通常需要一些工作。 Our build process将应用程序打包为一个zip文件,并将其发送到S3,以供我们的PHP后端下载,解析和提供服务。您的过程可能会有所不同,但希望该职位将引导您朝着正确的方向发展。