使用Intellj IDEA进行Tomcat远程部署
我正在尝试将我的应用程序部署到Docker容器中的Tomcat服务器上。 我正在使用Intellj IDEA,并且使用了以下工具: – configuration了JMX的tomcat远程连接器,以及我的电脑和容器之间的共享文件夹。
但我有一个大问题,位于我的应用程序的META-INF中的context.xml没有部署在服务器上,虽然我有copyXML和deployXML
Intellj Idea允许我在添加docBase应答器的情况下复制我的上下文版本,但仅在我的应用程序中。
我如何可以让我的tomcat服务器复制或部署我的context.xml,我有我的数据源定义?
提前致谢。
在IDEA 16.3及以前版本中,远程部署到Tomcat将忽略context.xml( https://youtrack.jetbrains.com/issue/IDEA-150430包含此内容)。
它已经被修正为IDEA 17.1,所以对于这个版本,Tomcat远程运行configuration的“远程登台”部分应该具有“从根path”字段的“context.xml”子部分。
你可以尝试从你的Docker容器中共享文件夹'<tomcat base> / conf / Catalina / localhost',这样这个文件夹和临时文件夹将在本地位于同一个父文件夹下。
然后,您应该分别在远程登台 – >主机设置中指定父文件夹,并在文件夹中指定文件夹的相对path,分别为“context.xml”和“Staging”部分中的“来自根目录的path”。
我已经声明webapps作为一个卷在我的形象,然后我复制内容到该文件夹容器启动时。
所以我最终用我的默认webapps文件安装文件夹。 但是,当我将war和xml部署到webapps文件夹中时,会失败,因为我的上下文没有部署。 但是,如果我只是重新启动docker与我的战争和XML仍然在挂载的文件夹中,那么它的工作原理。 如果用IDEA重新部署以连接到我的应用程序与JMX它也可以。
但它有点烂,静态资源副本不为我工作,因为path根目录是“webapps /../”,我不反对改变它。
我不明白为什么在Docker上用IDEA进行热部署非常困难。
我想我将不得不回头使用插件remoteSynchronizer复制.class和资源,以保持我的web应用程序是最新的,但它远没有工作,以及用于Eclipse的FileSync插件。