I suspect it has to do with the security restrictions of the applet, 'cause it doesn't appear to be finding your Lucene jar file. Also, regarding the lock files, I believe you can disable the locking stuff just for purposes like yours (read-only index).
Regards, Terry ----- Original Message ----- From: Simon mcIlwaine To: Lucene Users List Sent: Wednesday, August 18, 2004 11:03 AM Subject: Lucene Search Applet Im developing a Lucene CD-ROM based search which will search html pages on CD-ROM, using an applet as the UI. I know that theres a problem with lock files and also security restrictions on applets so I am using the RAMDirectory. I have it working in a Swing application however when I put it into an applet its giving me problems. It compiles but when I go to run the applet I get the error below. Can anyone help? Thanks in advance. Simon Error: Java.lang.noClassDefFoundError: org/apache/lucene/store/Directory At: Java.lang.Class.getDeclaredConstructors0(Native Method) At: Java.lang.Class.privateGetDeclaredConstructors(Class.java:1610) At: Java.lang.Class.getConstructor0(Class.java:1922) At: Java.lang.Class.newInstance0(Class.java:278) At: Java.lang.Class.newInstance(Class.java:261) At: sun.applet.AppletPanel.createApplet(AppletPanel.java:617) At: sun.applet.AppletPanel.runloader(AppletPanel.java:546) At: sun.applet.AppletPanel.run(AppletPanel.java:298) At: java.lang.Thread.run(Thread.java:534) Code: import org.apache.lucene.search.IndexSearcher; import org.apache.lucene.search.Query; import org.apache.lucene.search.TermQuery; import org.apache.lucene.store.RAMDirectory; import org.apache.lucene.store.Directory; import org.apache.lucene.index.Term; import org.apache.lucene.search.Hits; import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; public class MemorialApp2 extends JApplet implements ActionListener{ JLabel prompt; JTextField input; JButton search; JPanel panel; String indexDir = "C:/Java/lucene/index-list"; private static RAMDirectory idx; public void init(){ Container cp = getContentPane(); panel = new JPanel(); panel.setLayout(new FlowLayout(FlowLayout.CENTER, 4, 4)); prompt = new JLabel("Keyword search:"); input = new JTextField("",20); search = new JButton("Search"); search.addActionListener(this); panel.add(prompt); panel.add(input); panel.add(search); cp.add(panel); } public void actionPerformed(ActionEvent e){ if (e.getSource() == search){ String surname = (input.getText()); try { findSurname(indexDir, surname); } catch(Exception ex) { System.err.println(ex); } } } public static void findSurname(String indexDir, String surname) throws Exception{ idx = new RAMDirectory(indexDir); IndexSearcher searcher = new IndexSearcher(idx); Query query = new TermQuery(new Term("surname", surname)); Hits hits = searcher.search(query); for (int i = 0; i < hits.length(); i++) { //Document doc = hits.doc(i); System.out.println("Surname: " + hits.doc(i).get("surname")); } } }