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

  1. 路由匹配器反射调用失败,检查异常原因链(getCause())中的原始异常,通常为 Spring 版本不兼容或路径参数非法。
  2. 确认 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.