Spring security jwt 在successhandler中创建token报错

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
   public void onAuthenticationSuccess(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Authentication authentication) throws IOException, ServletException {
        logger.info("登录成功");
        httpServletResponse.setContentType("application/json;charset=utf-8");
        Object user = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
        logger.info("user: "+user);
        String token = TokenUtil.createToken(user);
        RespBean respBean = RespBean.success("登录成功", user);
        httpServletResponse.setHeader("token", token);
        ObjectMapper om = new ObjectMapper();
        PrintWriter out = httpServletResponse.getWriter();
        out.write(om.writeValueAsString(respBean));
        out.flush();
        out.close();
    }
运行结果及报错内容
2022-01-12 22:25:25.574 [http-nio-8082-exec-2] ERROR o.a.c.c.C.[.[localhost].[/].[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Filter execution threw an exception] with root cause
java.lang.ClassNotFoundException: javax.xml.bind.DatatypeConverter
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
    at io.jsonwebtoken.impl.Base64Codec.decode(Base64Codec.java:26)
    at io.jsonwebtoken.impl.DefaultJwtBuilder.signWith(DefaultJwtBuilder.java:99)
    at com.leng.oldass.util.TokenUtil.createToken(TokenUtil.java:46)
    at com.leng.oldass.security.CustomizeAuthenticationSuccessHandler.onAuthenticationSuccess(CustomizeAuthenticationSuccessHandler.java:38)
    at com.leng.oldass.security.CustomizeAuthenticationSuccessHandler$$FastClassBySpringCGLIB$$f597e5f9.invoke(<generated>)
我的解答思路和尝试过的方法
我想要达到的结果

TokenUtil.createToken里面的user转json有问题把,signWith中的Base64Codec.decode