dromara/Sa-Token · error · SaTokenException
路由匹配器调用失败
Error message
路由匹配器调用失败
What it means
Error "路由匹配器调用失败" thrown in dromara/Sa-Token.
Source
Thrown at sa-token-starter/sa-token-spring-boot-webmvc-reactor-v2v3v4-common/src/main/java/cn/dev33/satoken/spring/pathmatch/SaPatternsRequestConditionHolder.java:59
patternsRequestCondition = new PatternsRequestCondition();
matcherMethod = PatternsRequestCondition.class.getDeclaredMethod("getMatchingPattern", String.class, String.class);
matcherMethod.setAccessible(true);
} catch (NoSuchMethodException e) {
throw new SaTokenException("路由匹配器初始化失败", e);
}
}
/**
* 判断:指定路由匹配符是否可以匹配成功指定路径
* @param pattern 路由匹配符
* @param lookupPath 要匹配的路径
* @return 是否匹配成功
*/
public static boolean match(String pattern, String lookupPath) {
try {
return matcherMethod.invoke(patternsRequestCondition, pattern, lookupPath) != null;
} catch (IllegalAccessException | InvocationTargetException e) {
throw new SaTokenException("路由匹配器调用失败", e);
}
}
/*
性能测试:
100万次
new 对象方式,耗时:3.685s 最慢
反射调方法方式,耗时:1.311s 中等
原始方式,耗时:0.445s 最快,但有bug
*/
}
View on GitHub (pinned to ac2c7f6e94)
Solutions
- 路由匹配器反射调用失败,检查异常原因链(getCause())中的原始异常,通常为 Spring 版本不兼容或路径参数非法。
- 确认 sa-token starter 版本与项目的 SpringBoot/SpringMVC 版本匹配,避免混用不同大版本的依赖。
When it happens
Trigger: Thrown at sa-token-starter/sa-token-spring-boot-webmvc-reactor-v2v3v4-common/src/main/java/cn/dev33/satoken/spring/pathmatch/SaPatternsRequestConditionHolder.java:59 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of dromara/Sa-Token@ac2c7f6e94 (2026-08-14).
Data as JSON: /api/errors/79c4a1df05977484.
Report an issue: GitHub.