前言
我主要是进行java的springboot项目和vue项目的开发,但是架不住在这些框架兴起之前,公司内部已经是有其他的老的框架,我需要在这些老的框架进行修改和调整代码。原本我是使用的eclipse软件进行部署,也比较简单;
但是我遇到了一个怎么也解决不了的问题,没有报任何错误,但是tomcat怎么也启动不起来。总是报encountered problem这样的提示问题。
我不部署任何项目,直接启动本机的tomcat,是能够直接跳转访问到tomcat的管理界面,但是在eclipse一直启动不起来;我搜索的几乎所有的结果,都是说它eclipse配置tomcat会进行重定向,需要把eclipse配置的tomcat的server.xml里的<Context></Context>标签的内容注释掉或删除掉,才能够不会报错。
但是这边又有一个问题,删除之后确实能够启动tomcat了,我导入的javaweb项目是通过访问index.jsp进行访问项目,发现该配置的都配置了,硬是没有编译成功,没有把主入口编译出来,无法访问到我需要访问的项目。
ps:我有在第一次配置成功,可以访问,但是项目出现问题;第二次配置的时候就出现上面的情况
折磨了我很久,于是我打算使用idea进行配置javaweb项目;也折腾了很久,为了以后方便,把我这次使用idea配置javaweb的过程记录下来。
准备工作
IDEA
安装IDEA,这个是就不需要多说了,不过虽然版本一般不会影响配置javaweb,但是防止版本不一致部分操作可能不同,还是发出我使用的IDEA版本
我的IDEA版本为: IDEA 2021.1.3
tomcat
首先,你本机一定需要下载一个tomcat,版本无所谓都是可以的。然后记住你下载tomcat存放到本机的位置。如我的在D盘
D:\software\tomcat\apache-tomcat-9.0.54


jdk
同样,你的本机需要下载安装jdk,这边有一点很重要,
配置javaweb,里面的jdk版本一定要跟着javaweb项目来。
我的jdk路径同样也是在D盘
D:\software\jdk

javaweb结构
以下贴出我导入前的javaweb项目结构
以我的项目名称:HRMS

然后进行导入到idea
点击 File--->Open

找到你的本地的javaweb项目,点击OK即可

然后它提示我是否打开新窗口打开项目,选择是New Window

导入后的项目结构



这些就是我项目中的结构了,但是我们很多文件都不需要看,
配置文件你最主要的是需要看WebContent--->WEB-INF文件
配置文件你最主要的是需要看WebContent--->WEB-INF文件
配置文件你最主要的是需要看WebContent--->WEB-INF文件
重要的事情说三遍!!!
此外,还有一个很重要的事情,万一,你的IDEA没有识别出你的javaweb项目的src是java代码
需要标注src文件夹为资源文件(即src文件夹不是蓝色)
对src文件夹鼠标右键----》Mark Directory as ----》 Rources Root

配置JavaWeb项目
接下来是重头
project Structure…
点击File ---> project Structure...
打开项目配置界面
界面为

project Structure… --> Project
里面的Project界面需要配置两个,一个是Project SDK,一个是Project language level
SDK即jdk, language level即jdk版本
导入本机配置好的jdk(这里不额外教学idea配置jdk,详情百度,如果没有的话)
选择对应javaweb项目的jdk版本
一般大部分javaweb项目版本都是jdk1.8,和我的一样也是OK的
我的为:

即
SDK 1.8 version
language level 8 -Lambdas,type annotations etc.
project Structure… --> Libraries
可以看到我这边并没有直接配置Modules,而是先Libraries

这个是java代码需要的依赖包,如果你有写过Maven项目或者说是Springboot项目,和在pom.xml引入依赖的原理是一样的。
初始为上图,什么内容都没有,为空;
然后我们点击加号+
选择java引入

在我的项目中,只有在webContent--->WEB-INF ---> lib文件夹下才有对应的jar包,所以我只需要引入这个地方的jar包即可。
如果你的项目中有别的文件夹也有jar包,需要一并引入

点击OK,然后会提示

Library 'lib' will be added to the selected modules
意思是是否将引入的这个包引入到modules模块,也就是我跳过的地方
引入modules,也意味着,它是会引入到整个项目的配置,
我们选中,然后点击OK即可

project Structure… --> Modules
这个时候我们再回过头看看modules界面
抛开刚刚引入的lib
剩下的为初始界面

同样,我们来看看Modules--->Sources

以及Modules--->Paths

Sources里代表的是我们整个项目的资源情况
Paths 进行配置导包的操作,一般情况下,javaweb导包是会生成war,tomcat进行启动。
这里Modules我们什么都不需要操作,只给大家说明作用。
project Structure… --> Facets
Facets
初始界面为:

初始是空白的状态,什么都没有。它的作用就一个:
让IDEA知道这个项目是什么项目,知道需要怎么去运行这个项目,配置框架
我们这个项目是javaweb项目,自然而然需要配置为web框架
点击加号+,选择web

同样也会提示一个提示

Web facet will be added to selected module
它的意思是是否将web框架添加到选择的module模块
同样我们,选中项目module,选择OK
接下来一步非常重要
接下来一步非常重要
接下来一步非常重要

假如你现在点击Apply应用配置的话,你会发现,项目会多出一个文件夹web

但是只到这里的话,该操作
默认给你创建一个新的web项目,
而不是将你导入的javaweb项目标记为web项目,
所以我们需要更改配置。
将Facets ---> Type
选中,点击画笔,修改

将该配置映射到我们导入的javaweb项目的web.xml

即选择自己导入项目的WebContent -- > WEB-INF ---> web.xml文件
点击OK

继续点击OK
把Facets --> Web Resource Directory
选中,点击画笔,进行修改

将其选择自己项目中的WebContent 文件夹,点击OK

继续点击OK

点击Apply应用即可
这里,它提示
'Web' Facet resources are not included in any artifacts
也就是进入到我们的下一个配置
Artifacts
project Structure… --> Artifacts
打开Artifacts
初始为

也是空白,我们同样点击加号+
然后选择Web Application:Exploded --> From Modules

同样弹窗提示

提示
select modules will be included in the created artifact with all dependencies
意思是是否将选择的模块包含在创建的组件(artifact)中,并包含所有依赖项
我们也是选中module点击OK

以上我们的javaweb项目的配置都ok了,
不要忘记点击Apply进行应用配置!!!
不要忘记点击Apply进行应用配置!!!
不要忘记点击Apply进行应用配置!!!
配置tomcat
接下来我们配置最后一步,配置tomcat

点击Add Configuration添加配置
出现界面如下

然后我们点击加号+
找到tomcat,
选择local 本机

然后界面为:

一般情况下,你如果没有配置过tomcat
Application server一栏是空的,我们需要点击右边的Configure...进行找到我们下载到本地的tomcat

找到tomcat目录

以下截图为配置好之后的tomcat

这里之后一共需要注意四点

Application server: 配置本机tomcat
URL: 运行项目的主url
HTTP port:运行项目的端口
Warning:No artifacts marked for deployment:提示需要将运行项目的artifact进行配置
上述我们已经配置完成了,可以点右边的Fix自动添加
也可以点Deployment手动添加


最后同样也不要忘记Apply应用
大部分项目到这里已经可以直接运行了,点击三角运行即可

但是我的项目还不行,出来了各种问题,于是下面我来讲一下我的解决过程
遇到问题处理
我遇到的问题不代表全部解决方案,毕竟代码这种东西总会出来各种稀奇古怪的问题。有问题不是我这边总结发的可以评论出来,如果我知道会更新文章出来
缺失jar依赖
这种情况下,就需要引入对应的jar包
如果是常用的jar我推荐一个maven库,直接从里面下载jar进行引入,如果我给的maven库没有对应的jar包下载,那么你需要另外找库进行下载
mvnrepository库
除了上述常用的jar包出现之外,我还遇到如下问题

java: 程序包javax.servlet不存在
这个我通过查找百度,实际上是tomcat的依赖jar包,只需要引入本地的tomcat的servlet-api.jar包即可
同样打开Project Structure配置,打开Lbraries界面
点击右边已经引入的加号,继续引入

找到tomcat的依赖包servlet-api.jar,
注意我的本地的对应依赖包路径为
D:\software\tomcat\apache-tomcat-9.0.54\lib\servlet-api.jar

同样不要忘记Apply应用
此外,我还遇到一个

该jar包同样通过百度查找也是tomcat的依赖,需要引入tomcat的jasper.jar
步骤和上面相同

未找到jar对应方法
另外,如果遇到引入的jar没有问题,但是对应的方法爆红,那么很大可能是由于jar版本不兼容,
这种情况,我通过查找百度得知我遇到的那个jar,高于多少多少版本的对应爆红的方法被删掉了,然后我一看实际引入的对应jar,确实高出了不少版本,然后我把对应的依赖换成低版本就不报错了。
对应如何替换jar,和配置的Libraries界面操作一样!
项目实际启动结果
以下截图为我项目实际配置好之后启动的截图,(只发出一个入口界面)

结语
以上为我使用IDEA 导入别人的javaweb项目进行部署
也走了很多弯路,发出来除了作记录,也帮助需要的人进行配置。
再后面如果更新,很大是会在遇到的配置的问题上进行更新,以上。



















