使用idea+gradle创建javaweb项目
前提条件
工具版本
Gradle:4.7
idea: IntelliJ IDEA 2020.3.2 (Ultimate Edition)
tomcat:8.5.24
New Project 选择gradle java 下一步
点击finish
创建webapp相关内容并被idea识别
WEB-INF jsp静态文件 web.xml
创建配置springmvc.xml 配置web.xml
创建controller
配置project structure
Project面板
Modules面板
Facets面板
Artifacts面板
需要新创建Web Application
注意:
本人用idea默认创建的xxx.war(exploded)启动不成功 新建一个war exploded没有问题 曾怀疑是project面板下的project compiler output的问题,改为build目录同时modules也更改了目录仍不成功,哪位大佬知道的话麻烦告知下
注意:
a. output director需要指定输出到out目录 作用是把build目录下的文件复制到out目录用于tomcat运行
b. WEB-INF目录下classes需要包含resources文件(springmvc.xml)编译后的class文件(从build复制到out目录下的)
c. 确保lib目录下有我们所依赖的jar文件,lib目录没有则手动创建并导入jar 否则会报springmvc相关的类找不到的异常
d. Facets resources指的是Facets面板下配置的webapp下的文件 如下图的除掉classes文件
配置tomcat服务器
点击运行 成功页面
问题及解决方案
Xxxxx.war not found for the web module
[2021-09-05 01:39:54,910] Artifact Gradle : com.byteway : gradle-test5-1.0-SNAPSHOT.war (exploded): Artifact is being deployed, please wait...
[2021-09-05 01:39:54,923] Artifact Gradle : com.byteway : gradle-test5-1.0-SNAPSHOT.war (exploded): Error during artifact deployment. See server log for details.
[2021-09-05 01:39:54,925] Artifact Gradle : com.byteway : gradle-test5-1.0-SNAPSHOT.war (exploded): com.intellij.javaee.oss.admin.jmx.JmxAdminException: com.intellij.execution.ExecutionException: F:\idea-code\gradle-code\gradle-test5\build\libs\exploded\gradle-test5-1.0-SNAPSHOT.war not found for the web module.
Out下目录没有文件 说明artifacts配置的输出目录有问题 同时确保fcets面板配置没有问题
正常配置后文件会复制到out目录 同时会看到如下日志deployed successfully
报HTTP Status 500 – Internal Server Error
检查下out目录下是否有springmvc.xml
或者gradle build下打的war包放到tomcat下 看是否有问题,如果没问题的话说明复制到out目录这一步有问题,检查artifacts面板下的output layout下的配置是否有问题
其他未知问题及终极大招
a. 在artifacts重新创建个webapplication吧
b. 清空idea缓存 删除.idea
c. 不使用xxx.war exploed了,使用xxxx.war
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步