java.lang.ClassNotFoundException: org.apache.commons.codec.binary.Base64 [英] java.lang.ClassNotFoundException: org.apache.commons.codec.binary.Base64
问题描述
这里我将三个参数传递给这个 sign 方法.在这一行
Here I'm passing three parameters to this sign method. In this line
signature = new String(Base64.encodeBase64(mac.doFinal(data.getBytes(UTF_8_Encoding))));
signature = new String(Base64.encodeBase64(mac.doFinal(data.getBytes(UTF_8_Encoding))));
我收到错误:
严重:servlet.service() 用于 servlet[com.asp.amz.amzServlet] 在上下文中with path [/amazon] 抛出异常【Servlet执行抛出异常】有根本原因java.lang.ClassNotFoundException:org.apache.commons.codec.binary.Base64
SEVERE: Servlet.service() for servlet [com.asp.amz.amzServlet] in context with path [/amazon] threw exception [Servlet execution threw an exception] with root cause java.lang.ClassNotFoundException: org.apache.commons.codec.binary.Base64
String Key = "z/0qfiE+ScjxHy2gSwmHqP0rZ6fT9zhVgsNt";
String signatureMethod = "HmacSHA256";
String data = "sandbox.amazon.com/cobranded-ui/actions/start?callerKey=AKIAJZOKEUCXF7RKSCNA&callerReference=callerReferenceSingleUse¤cyCode=USD&paymentReason=HarryPotter%201-5%20DVD%20set&pipelineName=SingleUse&returnURL=http%3A%2F%2Flocalhost%3A8888%2Famazon&signatureMethod=HmacSHA256&signatureVersion=2&transactionAmount=5&version=2009-01-09";
private static String sign(String data, String key, String signatureMethod) throws SignatureException
{
System.out.println(" In sign block ");
String signature = "";
try {
System.out.println(" In sign Try block ");
Mac mac = Mac.getInstance(signatureMethod);
mac.init(new SecretKeySpec(key.getBytes(), signatureMethod));
signature = new String(Base64.encodeBase64(mac.doFinal(data.getBytes(UTF_8_Encoding))));
System.out.println(" In sign Try block ");
} catch (Exception e) {
System.out.println(" In sign catch block ");
throw new SignatureException("Failed to generate signature: " + e.getMessage(), e);
}
System.out.println(" End sign block " + signature);
return signature;
}
推荐答案
只需添加 commons-codec.jar 进入你的类路径
just add commons-codec.jar into your classpath
这篇关于java.lang.ClassNotFoundException: org.apache.commons.codec.binary.Base64的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!