У меня есть апплет, который выполняется в файле HTML, который пользователь загружает и открывает локально (т.е. file://
в строке URL-адреса). Этот апплет имеет метод, который загружает файл из Интернета и сохраняет его в каталоге внутри каталога, в котором запущен апплет. В моем HTML-файле я вызываю функцию для загрузки файла, и она работает, но когда я вызываю его во второй раз, чтобы загрузить другой файл, я получаю Error calling method on NPObject.
Я не получаю никакой ошибки на стороне Java (у меня есть консоль открыта и остается чистой).
В чем может быть проблема здесь? Большое спасибо за вашу помощь. Ниже приведен код апплета.
import java.security.*;
import java.io.*;
import java.nio.channels.*;
import java.net.*;
public class EPPenDrive extends java.applet.Applet {
public final static String baseURL = "http://localhost/data/documents/";
public String downloadFile(final String filename) {
return (String)AccessController.doPrivileged(new PrivilegedAction() {
public Object run() {
try {
URL finalURL = new URL(baseURL + filename);
ReadableByteChannel rbc = Channels.newChannel(finalURL.openStream());
URL appletDir = getCodeBase();
FileOutputStream fos = new FileOutputStream(appletDir.getPath() + "documents/"+ filename);
fos.getChannel().transferFrom(rbc, 0, 1 << 24);
return 1;
} catch (Exception x) {
x.printStackTrace();
return null;
}
}
});
}
public void init() { }
public void stop() { }
}