Вызов метода апплета из Javascript
У меня есть апплет для загрузки некоторых файлов из определенной папки и их удаления, но что-то не так, когда я вызываю функцию апплета из своего кода JavaScript, когда я вызываю эту функцию изinit()
это работает отлично.
Код моего апплета:
public class Uploader extends Applet {
String serverPath;
String clientPath;
private JSObject win;
@Override
public void init() {
serverPath = getParameter("serverPath");
clientPath = getParameter("clientPath");
try {
win = JSObject.getWindow(this);
} catch (JSException e) {
log.warning("Can't access JSObject object");
}
upload(topic,clientPath);
}
public void upload(String topic,String clientPath) {
log.log(Level.SEVERE, "upload functiond");
DefaultHttpClient client = new DefaultHttpClient();
MultipartEntity form = new MultipartEntity();
log.log(Level.SEVERE, "upload functiond2");
try {
File directory = new File(clientPath);
log.log(Level.SEVERE, "upload functiond2.2");
File[] files = directory.listFiles();
log.log(Level.SEVERE, "upload functiond2.5");
int i = 0;
for (File file : files) {
log.log(Level.SEVERE, "upload functiond2.6");
i++;
form.addPart("file" + String.valueOf(i), new FileBody(file));
System.out.println("adding file " + String.valueOf(i) + " " + file);
log.log(Level.SEVERE, "adding file " + String.valueOf(i) + " " + file);
}
log.log(Level.SEVERE, "upload functiond3");
form.addPart("topic", new StringBody(topic, Charset.forName("UTF-8")));
form.addPart("action", new StringBody(action, Charset.forName("UTF-8")));
form.addPart("path", new StringBody(serverPath, Charset.forName("UTF-8")));
HttpPost post = new HttpPost(serverPath);
....
и это мой код JavaScript:
document.applet.upload(title,"c:\scan");
Когда я звонил из javascript только журнал напечатан:
log.log(Level.SEVERE, "upload functiond2.2");
Обратите внимание, что когда я звоню изinit
Метод апплета работает нормально.
Я завернул свой код вPriviligedAction
, но идет только на шаг вперед и держится
log.log(Level.SEVERE, "upload functiond2.5");