从 Java 1.6.2 升级到 Java 1.7.25,现在在我的 JSP 上编译后,我得到以下内容:

SEVERE: Servlet.service() for servlet [jsp] in context with path [/dswsbobje] threw exception [Unable to compile class for JSP:

An error occurred at line: 40 in the jsp file: encrypt.jsp The method decodeBase64(byte[]) in the type Base64 is not applicable for the arguments (String)

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

An error occurred at line: 47 in the jsp file: encrypt.jsp The method encodeBase64URLSafeString(byte[]) is undefined for the type Base64

47:out.write ("User Name " + 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"); 


评论关闭
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!