java.lang.ClassNotFoundException: io.jsonwebtoken.Jwts 当使用 JJWT JSON Web Token
java.lang.ClassNotFoundException: io.jsonwebtoken.Jwts when using JJWT JSON Web Token
当我尝试从 Stormpath 使用 JJWT 时,它抛出 运行 时间异常 java.lang.ClassNotFoundException: io.jsonwebtoken.Jwts
。我正在使用嵌入在 GlassFish 4.1 上的 Jersey2;这是抛出异常的代码:
private String issueToken(String login) {
Key key = keyGenerator.generateKey();
//Key key = MacProvider.generateKey();
String jwtToken = Jwts.builder()
.setIssuer(uriInfo.getAbsolutePath().toString())
//.setIssuer("http://trustyapp.com/")
.setSubject(login)
.setIssuedAt(new Date())
.setExpiration(toDate(LocalDateTime.now().plusMinutes(15L)))
.signWith(SignatureAlgorithm.HS512, key)
.compact();
logger.info("#### generating token for a key : " + jwtToken + " - " + key);
return jwtToken;
}
我导入了 io.jsonwebtoken.Jwts 并且我的 pom.xml 有:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.8.2</version>
<scope>compile</scope>
</dependency>
我也在没有上述依赖的情况下尝试过它,以防下面对我的 pom.xml 的依赖就足够了:
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.7.0</version>
<scope>compile</scope>
</dependency>
我尝试了 this and this 的建议,但没有用,请帮助
在我的pom.xml中添加如下依赖后问题解决:
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-common</artifactId>
<version>${version.jersey}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-jdk-http</artifactId>
<version>${version.jersey}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-client</artifactId>
<version>${version.jersey}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-server</artifactId>
<version>${version.jersey}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet</artifactId>
<version>${version.jersey}</version>
</dependency>
我假设不需要此类依赖项,因为我使用的是嵌入在 GlassFish4.1.1 服务器上的 Jersey 2。
当我尝试从 Stormpath 使用 JJWT 时,它抛出 运行 时间异常 java.lang.ClassNotFoundException: io.jsonwebtoken.Jwts
。我正在使用嵌入在 GlassFish 4.1 上的 Jersey2;这是抛出异常的代码:
private String issueToken(String login) {
Key key = keyGenerator.generateKey();
//Key key = MacProvider.generateKey();
String jwtToken = Jwts.builder()
.setIssuer(uriInfo.getAbsolutePath().toString())
//.setIssuer("http://trustyapp.com/")
.setSubject(login)
.setIssuedAt(new Date())
.setExpiration(toDate(LocalDateTime.now().plusMinutes(15L)))
.signWith(SignatureAlgorithm.HS512, key)
.compact();
logger.info("#### generating token for a key : " + jwtToken + " - " + key);
return jwtToken;
}
我导入了 io.jsonwebtoken.Jwts 并且我的 pom.xml 有:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.8.2</version>
<scope>compile</scope>
</dependency>
我也在没有上述依赖的情况下尝试过它,以防下面对我的 pom.xml 的依赖就足够了:
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.7.0</version>
<scope>compile</scope>
</dependency>
我尝试了 this and this 的建议,但没有用,请帮助
在我的pom.xml中添加如下依赖后问题解决:
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-common</artifactId>
<version>${version.jersey}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-jdk-http</artifactId>
<version>${version.jersey}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-client</artifactId>
<version>${version.jersey}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-server</artifactId>
<version>${version.jersey}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet</artifactId>
<version>${version.jersey}</version>
</dependency>
我假设不需要此类依赖项,因为我使用的是嵌入在 GlassFish4.1.1 服务器上的 Jersey 2。