Добрый день,
Я пытаюсь программно извлечь содержимое файла jar и нашел фрагмент кода здесь , который позволил мне извлечь содержимое файла jar на моемлокальная машина без использования сервлета.
Теперь, когда я знаю, что код работает, я пытаюсь использовать его в локальной среде сервлетов, в частности Tomcat 7.0.22.Пока у меня есть код ниже, но я не смог вывести содержимое банки.Я считаю, что я неправильно обрабатываю поток вывода, и поэтому ничего не сохраняется в локальном каталоге моего локального сервера Tomcat.
Кто-нибудь сможет указать мне правильное направление или дать какой-нибудь совет о том, как исправить код, чтобы он выводил содержимое, прочитанное в файл?
import java.io.*;
import java.util.*;
import javax.servlet.*;
@SuppressWarnings("serial")
public class JarExtractor extends HttpServlet {
@SuppressWarnings("rawtypes")
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
String path = getServletContext().getRealPath("test.jar");
JarFile jar = new JarFile(path);
Enumeration jarEnum = jar.entries();
while (jarEnum.hasMoreElements()) {
JarEntry file = (JarEntry) jarEnum.nextElement();
File f = new File(file.getName());
if (file.isDirectory()) { // if its a directory, create it
f.mkdir();
continue;
}
InputStream in = jar.getInputStream(file); // get the input stream
OutputStream output = new FileOutputStream(f);
while (in.available() > 0) { // write contents of 'is' to 'fos'
output.write(in.read());
}
output.close();
in.close();
}
}
catch(Exception ex)
{
//------
}
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try
{
doPost(request,response);
}
catch (ServletException e)
{
//
}
catch (IOException e)
{
//
}
}
}
Большое спасибо за любую помощь, которую может оказать любой.
Приятных выходных!