org.apache.jasper.JasperException: Exception in JSP: /firma/print.jsp:20
17: try
18: {
19: KeyStore ks = KeyStore.getInstance("pkcs12");
20: ks.load(new FileInputStream("c:\\datos-asp\\epd.pfx"), "epd0001".toCharArray());
21: String alias = (String)ks.aliases().nextElement();
22: PrivateKey key = (PrivateKey)ks.getKey(alias, "epd0001".toCharArray());
23: java.security.cert.Certificate[] chain = ks.getCertificateChain(alias);
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:504)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
----------------------------------------
Here is my source code:
<%@ page import="java.util.*" %>
<%@ page import="java.awt.Color" %>
<%@ page import="java.io.*" %>
<%@ page import="java.security.*" %>
<%@ page import="java.security.cert.*" %>
<%@ page import="com.lowagie.text.*" %>
<%@ page import="com.lowagie.text.pdf.*" %>
<%!
public static String INCLUDE_PATH="../include/";
static final String FileName = "print.jsp";
%>
<%
try
{
KeyStore ks = KeyStore.getInstance("pkcs12");
ks.load(new FileInputStream("c:\\datos-asp\\prueba.pfx"), "xxx".toCharArray());
String alias = (String)ks.aliases().nextElement();
PrivateKey key = (PrivateKey)ks.getKey(alias, "xxx".toCharArray());
java.security.cert.Certificate[] chain = ks.getCertificateChain(alias);
PdfReader reader = new PdfReader("c:/datos-asp/prueba.pdf");
FileOutputStream fout = new FileOutputStream("c:/datos-asp/firmado.pdf");
//PdfStamper stp = PdfStamper.createSignature(reader, fout, '\0');
//Multiple sign
PdfStamper stp = PdfStamper.createSignature(reader, fout, '\0', null, true);
PdfSignatureAppearance sap = stp.getSignatureAppearance();
sap.setCrypto(key, chain, null, PdfSignatureAppearance.WINCER_SIGNED);
sap.setReason("I'm the author");
sap.setLocation("ESP");
// comment next line to have an invisible signature
sap.setVisibleSignature(new Rectangle(100, 100, 120, 70), 1, null);
//sap.setCertified(true);
stp.close();
out.println("OK!");
}
catch (Exception de)
{
out.println(de.getMessage());
}
%>--------------------
Thanks in advance,
Rafa