【编译失败】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>
posted @   BerserkD  阅读(3402)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示