亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

獲取 java.lang.NoSuchMethodException: io.

獲取 java.lang.NoSuchMethodException: io.

紫衣仙女 2023-06-14 16:17:00
我最近開始出現以下異常,只有在運行 junits 時。在正常流程中,該方法運行良好。(事實上 ,甚至 jUnits 過去一段時間都可以正常工作)java.lang.NoSuchMethodException:io.jsonwebtoken.impl.crypto.MacProvider.generateKey(io.jsonwebtoken.SignatureAlgorithm)以下是方法:public static String generateDummyJWT(String userName){     return Jwts.builder().claim("user_name", StringUtils.defaultString(userName)).setAudience("client1").signWith(Keys.secretKeyFor(SignatureAlgorithm.HS384)).compact();    }和 jjwt 版本:以下是完整的堆棧跟蹤:原因:java.lang.IllegalStateException:無法調用類方法 io.jsonwebtoken.impl.crypto.MacProvider#generateKey。確保必要的實現在運行時類路徑中。在 io.jsonwebtoken.lang.Classes.invokeStatic(Classes.java:202) 在 io.jsonwebtoken.security.Keys.secretKeyFor(Keys.java:121) 在 com.random.util.ServiceSpecificUtil.generateDummyJWT(ServiceSpecificUtil.java:143) ) 在 com.random.util.ServiceConstants.(ServiceConstants.java:203) 在 com.random.MyClass.isUserBranch(MyClass.java:67) 在 com.random.MyClass.validName(MyClass.java:93) 在 com. random.MyClass.preConditionCheck(MyClass.java:82) 在 com.random.MyClass.get(MyClass.java:46) 在 com.random.MyClass2.evaluateExpression(MyClass2.java:218) 在 sun.reflect.NativeMethodAccessorImpl。NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method. java:498) at io.jsonwebtoken.lang.Classes.invokeStatic(Classes.java:198) ... 66 更多 原因:java.lang.IllegalStateException:HmacSHA384 算法不可用。這永遠不會發生在 JDK 7 或更高版本上——請將此報告給 JJWT 開發人員。在 io.jsonwebtoken.impl.crypto.MacProvider.generateKey(MacProvider.java:94) 在 io.jsonwebtoken.impl.crypto.MacProvider.generateKey(MacProvider.java:63) ... 還有 71 個原因:java.security。 NoSuchAlgorithmException:HmacSHA384 KeyGenerator 在 javax.crypto.KeyGenerator 中不可用。
查看完整描述

1 回答

?
海綿寶寶撒

TA貢獻1809條經驗 獲得超8個贊

我能夠解決我的問題。

團隊中有人在初始化靜態最終變量時添加了對上述函數的調用,如下所示:

public?static?String?TOKEN_GUEST?=?ServiceSpecificUtil.generateDummyJWT(USERNAME);

PowerMock現在,由于大量使用反射和字節碼操作,似乎訪問 java.security packges 通常不能很好地工作:

@PowerMockIgnore({"org.apache.http.conn.ssl.*",?"javax.net.ssl.*"?,?"javax.crypto.*"})

當從另一個函數調用上述函數時,這可能有助于防止錯誤。但這并不能防止靜態變量初始化中的錯誤。

public?static?String?TOKEN_GUEST?=?ServiceSpecificUtil.generateDummyJWT(USERNAME);
查看完整回答
反對 回復 2023-06-14
  • 1 回答
  • 0 關注
  • 204 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號