2010-03-26 2 views
1

Я написал простой апплет Java для создания технического изображения на основе некоторых данных в CSV-файле. Я передаю в файл CSV в качестве параметра апплета:Java-апплет - доступ запрещен к файлу на том же веб-сервере

<applet code = "assaymap.AssayMapApplet" archive = "http://localhost/applet_test/AssayMap.jar" height="600px" width="800px"> 
    <param name="csvFile" value="http://localhost/applet_test/test.csv"> 
</applet> 

Насколько я понял ограничения безопасности апплета, апплет должен иметь возможность считывать данные с хоста они на.

Эти апплеты здесь http://www.jalview.org/examples/applets.html используют один и тот же подход к передаче в текстовый файл данных в качестве параметра. Поэтому я не уверен, почему мой собственный апплет не работает.

Я читаю файл, используя проект javacsv на sourceforge.

Мой код для чтения файла CSV является:

public static ArrayList<Assay> getData(String file) throws FileNotFoundException, IOException { 

    ArrayList<Assay> assays = new ArrayList<Assay>(); 

    CsvReader reader = new CsvReader(file); 
    reader.readHeaders(); 
    while (reader.readRecord()){ 
     int assay_id = Integer.valueOf(reader.get("assay_id")); 
     String assay_name = reader.get("assay_name"); 
     float distance = Float.parseFloat(reader.get("distance")); 
     assays.add(new Assay(assay_id, assay_name, distance)); 
    } 

    return assays; 
} 

Сообщение об ошибке я вышвырнут является:

Error with processing the CSV data. 
java.security.AccessControlException: access denied (java.io.FilePermission http:\localhost\applet_test\test.csv read) 
+1

Можете ли вы предоставить код для чтения. Как вы читаете, это может иметь значение. – justkt

+0

Я добавил код, где я действительно прочитал файл. –

ответ

5

Вы, очевидно, пытается использовать «http://localhost/applet_test/test.csv» в качестве имени файла, а не как URL. Взгляните на классы URL и URLConnection в пакете java.net и используйте их для чтения содержимого вместо java.io.File.

+0

Thansk очень много. Теперь я передаю InputStream, сгенерированный из URL-адреса, в CsvReader, и он работает отлично. –