0

当我尝试使用 Stormpath 中的 JJWT 时,它会抛出运行时 Exception 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>

我尝试了thisthis的建议,但没有奏效,请帮忙

4

1 回答 1

0

将以下依赖项添加到我的 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。

于 2017-06-09T07:48:02.083 回答