免责声明


由于传播、利用本公众号绿洲安全所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号绿洲安全及作者不为此承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢。
0x01 基础环境搭建
jdk8u312 Maven 3.6.3 IDEA 2021.2.1
这里没有借鉴任何其他文章,完全是自己手工搭建了一遍,其实根本没那么复杂。
新建项目,选择 enterprise,这个地方要注意,选择 Web Application,而不是 Rest Service。

下一步这里,什么都不需要选。

后续根本不需要配置什么 web.xml,也不需要添加什么 classes 文件夹,lib 文件夹,根本没必要。
因为我们选择的是 Web Application 4.0,可以直接在类里面用注解配置,比如 Servlet ———— @WebServlet("/servlet"),在访问 /servlet 的时候调用此 Servlet
但是有时候为了分析还是需要加上 web.xml,会简易一点
搭完了之后要用 maven 把 tomcat 的包打进去,很坑。
xml 代码如下
<dependency> |
0x03 为什么要重新写一下如何搭建
当时发现太坑了,因为我们如果新建了 classes,并且设置输出,有时候会设置失败的。
遇到的情况是 500 的报错,其实就是没有 .class 输出,这是啥意思呢?
我们平常编译,都是有一个 target 文件夹的,里面放的是 .class 的文件,这个 .class 的文件如果没有,就会报 500 的那个错误,并且报错是 ClassNotFound
所以才会这样,醉了。

Tomcat调试报错Cannot load this JVM TI agent twice或无法进入断点的问题
Cannot load this JVM TI agent twice, check your java command line for duplicate jdwp options

解决方法:
直接放解决方法:(只针对windows下,其他操作系统没尝试)
找到本地部署的tomcat文件夹bin目录中的catalina.bat文件
打开
将以下内容(一般在第二行)set JAVA_OPTS=-server -Xms4096m -Xmx4096m -XX:MaxNewSize=512m -XX:MaxPermSize=256m改为set JAVA_OPTS=%JAVA_OPTS% -server -Xms4096m -Xmx4096m -XX:MaxNewSize=512m -XX:MaxPermSize=256m如果没有上面内容,直接添加即可
如果没有上面内容,直接添加即可
还是在catalina.bat文件中,查找关键字,-Xrunjdwp:transport
找到如下内容:

把圈起来这段内容删掉
在IDEA中把tomcat配置中调试一栏的传递环境变量选项打开

第二种搭建方式
是在学习狂神 SpringMVC 视频的时候学到的,先起一个项目,然后删除 src 文件夹。
接着新建 module,在 module 里面 add framework,选择 web application 即可。
其实一开始我也是这样创建的,但是坑就坑在,还要导入 jsp 的包,如下
<dependencies> |
父类的 pom.xml 如下
<dependencies> |
踩坑
这其实还会有点小问题,有时候 Tomcat 的项目会 404,这是因为没有导入 lib;
创建一个 lib,接着导入包即可。


CSDN 上有很多文章是没有提及这个的,太坑了。
第三种搭建方式
详见 Struts2 搭建的文章,也是一样的,需要寻找 web-app