java - 由 : java. lang.NoClassDefFoundError: io/jsonwebtoken/Jwts 引起

标签 java jwt tomcat7 java-7 jersey-client

我正在使用 jjwt-0.9.1.jar,运行时为 Jersey 重置 API 调用提供了此异常。

当我使用 java main() 方法使用此代码时,它工作得很好,但是当我从 servlet 调用该类时,该方法会抛出异常。

import io.jsonwebtoken.JwtBuilder;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import java.util.Date;
import java.util.UUID;
    public String createJWTToken() {
        String id = UUID.randomUUID().toString().replace("-", "");
        //The JWT signature algorithm we will be using to sign the token
       // SignatureAlgorithm signatureAlgorithm = SignatureAlgorithm.HS256;
        long nowMillis = System.currentTimeMillis();
        Date now = new Date(nowMillis);
        //Let's set the JWT Claims
        JwtBuilder builder = null;
        try {
            builder = Jwts.builder().setId(id).setHeaderParam("typ", "JWT")
                                        .setIssuedAt(now)
                                        .setSubject("")
                                        .setIssuer(API_KEY)
                                        .signWith(SignatureAlgorithm.HS256,SECRET_KEY.getBytes("UTF-8"));
            //if it has been specified, let's add the expiration
            if (ttlMillis >= 0) {
            long expMillis = nowMillis + ttlMillis;
                Date exp = new Date(expMillis);
                builder.setExpiration(exp);
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
        return builder.compact();//Builds the JWT and serializes it to a compact, URL-safe string
    }

当调用 servlet 到 java 类方法时,即 createJWTToken() 在 tomcat 中出现以下异常。

javax.servlet.ServletException: Servlet execution threw an exception    
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:328)    

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)    

at com.test.lms.servlets.GlobalFilter.doFilter(GlobalFilter.java:204)   

at com.test.lms.servlets.GlobalFilter.doFilter(GlobalFilter.java:48)    

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)    

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)    at com.general.FilterDemo.doFilter(FilterDemo.java:312)     

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)    

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)    

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)  

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)  

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)   

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)    

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)     

at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)    


at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)    

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)  

at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:200)    

at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)  

at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)     at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)    

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)   

at java.lang.Thread.run(Unknown Source) Caused by: java.lang.NoClassDefFoundError: io/jsonwebtoken/Jwts     

at com.zoom.JWTTokenGeneration.createJWTToken(JWTTokenGeneration.java:31)   

at com.zoom.Utilities.setMeeting(Utilities.java:571)    

at com.general.InsertController.doPost(InsertController.java:377)   

at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)     

at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)     

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)    ... 22 more Caused by: java.lang.ClassNotFoundException: io.jsonwebtoken.Jwts   

at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1701) 

at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1546)  ... 28 more

最佳答案

异常(exception)是 java.lang.NoClassDefFoundError: io/jsonwebtoken/Jwts

检查Jar文件(jwt)是否打包在构建中?

关于java - 由 : java. lang.NoClassDefFoundError: io/jsonwebtoken/Jwts 引起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62040756/

相关文章:

java - 通过java运行批处理文件(.bat)所需的解决方案

java - SQLGrammarException。 Hibernate 中未知的列名

c# - .Net Core JwtBearer 身份验证不拒绝过期的 token

java - Tomcat 未处理 jSTL ${}

java - 使用 DynamicJasper API 生成的 html 报告输出中没有图像

javascript - 签署 JWT - 我做错了吗?

java - 如何在我的 Docker 自托管 Jitsi 服务器中为我的 Android 应用程序实现 jwt token 韵律插件?

tomcat - 无法编辑 tomcat-users.xml

java - android tomcat读取servlet字符串文本

java - Nutch + Solr - 索引器导致 java.lang.OutOfMemoryError : Java heap space