我滴的妈呀,找遍网上所有方法,还好最后解决了,顺便把这过程记录一下,太痛苦。
项目一直能运行,今天突然就不能运行了,用的vue+springboot搭建的项目。
debug报错如下:
错误: 找不到或无法加载主类大全
messages报错如下:
D:\eclipse\MyBlog-master\dam\src\main\java\com\dam\dam\config\CorsConfig.java使用或覆盖了已过时的 API。
[INFO] /D:/eclipse/MyBlog-master/dam/src/main/java/com/dam/dam/config/CorsConfig.java: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /D:/eclipse/MyBlog-master/dam/src/main/java/com/dam/dam/controller/AllInfosController.java:[5,48] 程序包com.sun.org.apache.xml.internal.security不存在
首先,找问题的时候,俺的方向就错了,不应该只盯着debug报错,也要看messages报错。
CorsConfig.java使用或覆盖了已过时的 API。
我原本的代码 类似这种, extends WebMvcConfigurerAdapter 是过时的。
@Configuration
public class WebAppConfig extends WebMvcConfigurerAdapter{
@Autowired
private UserIDHandlerInterceptor userIDHandlerInterceptor;
/**
* addPathPatterns 添加拦截规则
* excludePathPatterns 排除拦截规则
*
* @param registry
*/
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(userIDHandlerInterceptor).addPathPatterns("/**/*");
}
}
extends WebMvcConfigurerAdapter过时,改成 implements WebMvcConfigurer
@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
System.out.println("----------------------");
//设置允许跨域的路径
registry.addMapping("/**")
//设置允许跨域请求的域名
.allowedOrigins("*")
//这里:是否允许证书 不再默认开启
.allowCredentials(true)
//设置允许的方法
.allowedMethods("GET", "POST", "DELETE", "PUT")
//跨域允许时间
.maxAge(3600);
}
}
第一个问题解决了,第二个
程序包com.sun.org.apache.xml.internal.security不存在
这个错误非常奇妙,在application中我import com.sun.org.apache.xml.internal.security.Init;,但是实际上我并没有用到他,import了还是灰的(如图所示),我就把他删掉。然后第二个问题解决了。
再运行项目,就能启动起来了,至此,凡是用不到的赶紧删掉,删干净,另外“ 错误: 找不到或无法加载主类”有很多情况,也不要盲目的就去网上搜搜搜,自己多想多想。
如上是俺的解决方案
每个人的问题各异,这里有一个博主写 错误: 找不到或无法加载主类 (汇总贴),还没解决的小伙伴可以看看。
错误: 找不到或无法加载主类 (汇总贴) : http://www.luyixian.cn/news_show_262115.aspx