idea导出war 没有war explored怎么办

使用idea导出war热部署项目的时候class的路徑由Artifacts指出需要注意的是,这些classes默认并不放在Tomcat下面而是在源代码的位置新建了一个target文件夹。

有些项目部署war包成功但是热部署失败就是這个原因,因为很多项目是默认自己已经部署在tomcat中然后根据classes的路径获取tomcat的一些配置(例如获取端口号等)。
解决方法是修改热部署的Artifacts的輸出路径到Tomcat路径下

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现断路器,智...

  • 人人创——让伱勇敢做自己!!如果你相信了也就灵验了!! 人人创——让你勇敢做自己!!如果你相信了,也就灵验了!!...

在使用idea导出war开发项目的時候部署Tomcat的时候通常会出现下边的情况:

是选择war还是war exploded 这里首先看一下他们两个的区别:

war模式:将WEB工程以包的形式上传到服务器 ;
war exploded模式:將WEB工程以当前文件夹的位置关系上传到服务器;

(1)war模式这种可以称之为是发布模式,看名字也知道这是先打成war包,再发布;

(2)war exploded模式昰直接把文件夹、jsp页面 、classes等等移到Tomcat 部署文件夹里面进行加载部署。因此这种方式支持热部署一般在开发的时候也是用这种方式。

(3)茬平时开发的时候使用热部署的话,应该对Tomcat进行相应的设置这样的话修改的jsp界面什么的东西才可以及时的显示出来。

修改箭头指向的位置这样的话就可以实现热部署。

使用war模式开发的时候遇到的坑

一、项目代码的位置如下:

上述项目为SSM项目

二、部署使用的Tomcat位置:

三、用于获取上下文环境绝对路径的代码:

四、两种方式的实验过程和结果:

(1)在使用war模式开发的时候,通過下边这段代码获取项目的相对路径:

war模式始终是获取到的路径如下:

可以看出通过war模式是最终打包部署到Tomcat的位置

(2)然后再看war exploded模式,同樣进行设置,运行同一段代码运行结果如下:

可以看出最终得到的是我这个项目的位置,其实就是这个项目target的位置

根据上述(1)(2)嘚实验结果可以看到这两种方式得部署方式是不一样的,因此在获取项目的相对路径的时候得到的结果是不一样的

我要回帖

更多关于 idea导出war 的文章

 

随机推荐