пятница, 21 февраля 2014 г.

JAVA. HOWTO. Как прочитать ресурс WAR-приложения как байтовый массив.

JAVA. HOWTO. Как прочитать ресурс WAR-приложения как байтовый массив.

Пример приведён для jsp. Файл "2070.cer" является ресурсом приложения. После сборки он будет находится в файле war/jar.
см. http://stackoverflow.com/questions/2639943/accessing-jar-resources

<%@page import="local.esphere.cert.DER2XML, java.io.*, org.apache.commons.io.*"%>
<html>
<body>
<h2>Hello World!</h2>
<%
 String crtPath = "/2070.cer";
 InputStream file = getClass().getResourceAsStream( crtPath );
 
 byte[] bytesDER = IOUtils.toByteArray(file);
 
 out.println("xml:<br/><pre>"+ DER2XML.convert( bytesDER )+"</pre>" );
 out.println("ThumbPrint:"+ DER2XML.getThumbPrint( bytesDER ) );
%>
</body>
</html>

Примечание: поскольку getClass не является статическим методом, то вызвать его напрямую можно только у инстанциированных объектов, например:

InputStream file = crtPath.getClass().getResourceAsStream( crtPath );