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:45
* @author click33
* @since 1.35.1
*/
public class SaPatternsRequestConditionHolder {
private SaPatternsRequestConditionHolder() {
}
public static PatternsRequestCondition patternsRequestCondition;
public static Method matcherMethod;
static {
try {
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);
}
}
/*View on GitHub (pinned to ac2c7f6e94)
Solutions
- 该错误说明当前 Spring 版本中 PatternsRequestCondition 没有 getMatchingPattern(String, String) 方法,通常是因为 SpringBoot/SpringMVC 版本与当前 sa-token starter 不匹配。确认引入的 starter 与项目 SpringBoot 版本对应(2.x 用 sa-token-spring-boot-starter,3.x 用 boot3,4.x 用 boot4)。
- 检查项目中是否存在多个不同版本的 spring-webmvc 依赖冲突,使用 mvn dependency:tree 排查并统一版本。
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:45 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/c527ba282b1b19ed.
Report an issue: GitHub.