我有点问题。我一直在尝试使用不同的库来生成json令牌,现在我正在使用Stormpath的JJWT。他们有很好的解释教程。但我的问题是,当我尝试在“public static void main”方法中运行String方法时,我得到运行时或类错误。在他们的官方网站上说,杰克逊图书馆必须比版本2.8更新。所以我下载了这样的库。
这是我的源代码:
package org.comunidadIT.proyecto.accesoDatos;
import java.security.Key;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import io.jsonwebtoken.impl.crypto.MacProvider;
public class ValidarToken {
public String token(){
// We need a signing key, so we'll create one just for this example. Usually
// the key would be read from your application configuration instead.
Key key = MacProvider.generateKey();
String compactJws = Jwts.builder()
.setSubject("Joe")
.signWith(SignatureAlgorithm.HS512, key)
.compact();
return compactJws;
}
public static void main(String args[]){
ValidarToken t= new ValidarToken();
System.out.println(t.token());
}
}
控制台显示以下错误消息:
Exception in thread "main" java.lang.NoSuchFieldError: USE_DEFAULTS
at com.fasterxml.jackson.annotation.JsonInclude$Value.<clinit>(JsonInclude.java:204)
at com.fasterxml.jackson.databind.cfg.MapperConfig.<clinit>(MapperConfig.java:44)
at com.fasterxml.jackson.databind.ObjectMapper.<init>(ObjectMapper.java:549)
at com.fasterxml.jackson.databind.ObjectMapper.<init>(ObjectMapper.java:465)
at io.jsonwebtoken.impl.DefaultJwtBuilder.<clinit>(DefaultJwtBuilder.java:42)
at io.jsonwebtoken.Jwts.builder(Jwts.java:116)
at org.comunidadIT.proyecto.accesoDatos.ValidarToken.token(ValidarToken.java:16)
at org.comunidadIT.proyecto.accesoDatos.ValidarToken.main(ValidarToken.java:27)
Image from maven dependencies where appears to be fine with jackson
Image from the console with erros
正如您所看到的,杰克逊依赖关系似乎没问题。
此外,我还在引用库的构建路径上添加了更多的libreries,但是它们位于pom.xml之外。
我做错了什么?
谢谢
答案 0 :(得分:0)
我回答自己,也许有人会遇到同样的问题。
我已经解决了这个问题大约一个月,直到我开始删除我项目中的一些旧库。
问题似乎是我用杰克逊2.8.2或更高版本以及参考图书馆宣布了Maven dependecy&#39;我的库低于1.9,当我从Build-Path中删除时,问题就消失了。现在我可以看到字符串标记。
This is the picture with the problem solved.
谢谢。