4

Java アプレットを使用して gml ファイルを選択し、xsd スキームで検証しています。

String selectedPath;
FileDialog selectFileDialog;

private String ShowFileDialog(String title, String extension) {
    selectFileDialog.setFile(extension);
    selectFileDialog.setTitle(title);
    selectFileDialog.setVisible(true);

    if (selectFileDialog.getFile() == null)
        return null;

    return selectFileDialog.getDirectory() + selectFileDialog.getFile();
}

public void SelectFile(){
    selectedPath = ShowFileDialog("Select file", "*.gml");
}

public void ProcessFile(){
    InputStream inputStream = new FileInputStream(new File(selectedPath));
    InputSource inputSource = new InputSource(inputStream);
    //... sending file to sax parser
}

GUI は、これらの関数を呼び出す 2 つの java.awt ボタンのみで構成されています。

Manifest.MF ファイルに含まれるもの

権限: すべての権限

許可の問題のため、jar ファイルにも署名しました。だから、間違いなく機能しています。

しかし、問題は、JavaScript からこれらの (パブリック) 関数をトリガーすると、以下の例外がスローされることです。

//This functions is working properly, shows FileDialog and selecting file
document.applets[0].SelectFile();

//This function throws exception.
//Instead of clicking this button i can click java gui button and execute function properly
document.applets[0].ProcessFile();

access denied ("java.io.FilePermission" "blablafile.gml" "read")

Java gui 要素を使用したくないので、純粋な HTML 要素からこれらのイベントをトリガーする必要があります。

4

0 に答える 0