【编译失败】Compilation failure An unknown compilation problem occurred
maven的tomcat7插件启动tomcat提示:Compilation failure An unknown compilation problem occurred;
改成本地Tomcat8.5.68后可以启动,但是无法找到项目的资源,无论是超链接还是servlet都无法跳转:
原因猜想:
tomcat7插件生成的url路径是按照html的给的,但是本地的tomcat的url路径需要加上打包的路径,也就是说/login_war。
原路径:http://localhost:8080/Login/Login.html
修改后的路径:http://localhost:8080/Login_war/Login.html
并且把login.html的路径也修改成Login_war:
<form action="http://localhost:8080/Login_war/LoginServlet" id="form" method="post">
clean,重新打包,登录成功:
后续:
tomcat7插件编译失败,搜索很多遍后得到可能的原因是maven每次更新都会把java compiler里的jdk版本修改回1.5,需要改回使用的8版本。
不过我这里修改后还是报错,报错后又试着run了一遍,神奇的事情发生了:居然可以以tomcat插件的方式启动!
不过tomcat插件和本地tomcat的路径是需要注意的是,tomcat插件的路径是按本地项目名(Login)决定的,而本地的tomcat是按照tomcat的webapps目录下的war包名决定的。
也就是说,使用tomcat插件,servlet路径要写成这样:
<form action="/Login/LoginServlet" id="form" method="post">
而本地tomcat服务器则是/Login_war/LoginServlet
----后记------
终于发现问题所在了。。。
原因是pom.xml文件里误删了个字母...变成了compiler.arget,导致一直编译不成功,同时java compiler里面的版本也一直没有绑定为jdk8 ,而是变回了1.5,到此一切都说得通了。
正确的应该是这样的:
<maven.compiler.target>8</maven.compiler.target>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?