簡體   English   中英

類型為Base64的方法encodeBase64(byte [])不適用於參數(String)

[英]The method decodeBase64(byte[]) in the type Base64 is not applicable for the arguments (String)

從Java 1.6.2升級到Java 1.7.25,現在在我的JSP上進行編譯時,我得到以下信息:

嚴重:路徑為[/ dswsbobje]的上下文中的servlet [jsp]的Servlet.service()引發了異常[無法為JSP編譯類:

在jsp文件:crypto.jsp中的第40行出現錯誤:Base64類型的方法encodeBase64(byte [])不適用於參數(字符串)

40:字節[] raw = Base64.decodeBase64(secret64);

在jsp文件:crypto.jsp中的第47行出現錯誤:對於類型Base64,未定義方法encodeBase64URLSafeString(byte [])。

47:out.write(“ 用戶名” + userid +“: ” + Base64.encodeBase64URLSafeString(cipher.doFinal(userid.getBytes())));

是什么導致這些錯誤,我該如何解決?

您正在使用的Base64類似乎已從一個版本更改為另一個版本。 您尚未提供此類的完整類名,但是Google告訴我,它應該是版本> = 1.4的Apache Commons Codec。

看來您現在正在某種程度上使用該庫的較舊版本,因為編譯器抱怨的方法是在1.4版中添加的,因此,如果您現在使用較舊的方法,則找不到這些方法。

用較新的庫替換較舊的庫可以解決您的問題。 另外,您可以將方法的調用更改為舊版本中已經存在的方法,例如

byte[] raw = Base64.decodeBase64(secret64);

byte[] raw = Base64.decodeBase64(secret64.getBytes(charset));

Base64.encodeBase64URLSafeString(cipher.doFinal(userid.getBytes())));

new String(Base64.encodeBase64URLSafeString(cipher.doFinal(userid.getBytes(charset)))), "UTF-8");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM