# jsp lucene problem



## Gaston (4. Nov 2005)

Hallo habe eine ziemlich einfache jsp anwendung, die auf meinem tomcat server auf dem heimpc läuft aber beim webhosting provider einen Runtime Error produziert.  Nun schreit jeder natürlich auf und sagt es muss dann an fehlenden Biblotheken liegen aber dem ist meiner Einschätzung nach nicht so. Ahja meine Anwendung benutzt das lucene.1.4.3.jar. Und ich habe zuerst einen Versuch unternommen und meine jsp seite ohne Inhalt, nur mit den import direktiven, den lucene direktiven hochgeladen und es trat kein error auf. Daraus schließe ich dass der Error meiner Anwendung nicht durch fehlende Biblotheken erzeugt wird.


```
<%@ page import="javax.servlet.*, javax.servlet.http.*,java.io.*,org.apache.lucene.analysis.Analyzer,org.apache.lucene.analysis.standard.StandardAnalyzer,org.apache.lucene.document.Document,org.apache.lucene.document.Field,org.apache.lucene.index.IndexWriter" %>
<%



		try
		{
		String[] text = { "Indexierung mit Lucene", "Suche mit Lucene" };
		String indexDir = "MyLucene";
		Analyzer analyzer = new StandardAnalyzer();
		boolean create = true;
		
		IndexWriter writer = new IndexWriter(indexDir, analyzer, create);
	
		for (int i = 0; i < text.length; i++)
		{
			Document document = new Document();
			document.add(Field.Text("textfeld", text[i]));
			writer.addDocument(document);
			out.println("Es klappt");
		}
		writer.close();
		out.println("hallo");
		}catch(Exception e)
		{}

%>
```

Leider kann ich bei meinem Provider nur .war Dateien hochladen.  Hab sogar schon das lucene.jar entpackt und die ordnerstruktur dieses jar in mein web-inf verzeichnis gepackt und auf meinem homepc lief des, nur bei meinem provider nicht.  also ich bin für jeden Hinweis sehr dankbar woran das liegen könnte. Ich vermute es könnte was mit schreibrechten zu tun haben wegen: 


```
IndexWriter writer = new IndexWriter(indexDir, analyzer, create);
```

Hier die Fehlermeldung:

http://gasizwei.meintestaccount.de:9080/mmm/indexaufserver.jsp

Danke im Vorraus


Gaston


----------



## mlange8801 (5. Nov 2005)

Kann es sein, dass Du den Index in ein Verzeichnis (System.getProperty ("user.dir")+"MyLucene") versuchst zu schreiben, augf das Du bei deinem Provider keine Rechte hast?



```
Caused by: java.security.AccessControlException: access denied (java.util.PropertyPermission org.apache.lucene.writeLockTimeout read)
	at java.security.AccessControlContext.checkPermission(AccessControlContext.java:269)
	at java.security.AccessController.checkPermission(AccessController.java:401)
	at java.lang.SecurityManager.checkPermission(SecurityManager.java:524)
	at java.lang.SecurityManager.checkPropertyAccess(SecurityManager.java:1276)
	at java.lang.System.getProperty(System.java:612)
	at org.apache.lucene.index.IndexWriter.<clinit>(IndexWriter.java:57)
```

Vielleicht mal so probieren:


```
try 
      { 
      String[] text = { "Indexierung mit Lucene", "Suche mit Lucene" }; 
      String indexDir = application.getRealPath("/")+"MyLucene"; 
      Analyzer analyzer = new StandardAnalyzer(); 
      boolean create = true; 
       
      IndexWriter writer = new IndexWriter(indexDir, analyzer, create); 
    
      for (int i = 0; i < text.length; i++) 
      { 
         Document document = new Document(); 
         document.add(Field.Text("textfeld", text[i])); 
         writer.addDocument(document); 
         out.println("Es klappt"); 
      } 
      writer.close(); 
      out.println("hallo"); 
      }catch(Exception e) 
      {e.printStackTrace();}
```


----------



## LordSam (5. Nov 2005)

Das ist der Fehler der beim Aufruf deiner URL bei mir erscheint:


```
java.lang.NoClassDefFoundError
	at org.apache.jsp.indexaufserver_jsp._jspService(indexaufserver_jsp.java:58)
```

Dem Fehler nach liegt es schon daran das er 'eine' Bibliothek nicht finden kann. Wenn Du die JSP Seite nur mit der Import-Anweisung deployst heist das noch lange nicht das er deshalb die importierten Klassen auch finden kann. Erst wenn dein Code diese anspricht gibts eine entsprechende Exception.

Die lucene.jar muss in's WEB-INF/lib verzeichnis damit das funktioniert. Sorg einfach mal dafür das die .jar in diesem Verzeichnis landet. Wenn du schon ne fertige .war Datei hast kannst du die Datei auch mit einem Archiv-Programm (z.B. WinZip) nachträglich dort reinlegen.


----------



## Gaston (5. Nov 2005)

hi danke für die tipps. leider funzt des immer noch nicht. ich packe das war verzeichnis selbst. und dann teste ich des auf  meine tomcat server auf dem heimpc und es klapprt. das lucene.jar verzeichnis ist im web-inf/lib verzeichnis. hast du außer das es an einem sicherheitsfehler, sprich schreiben ohne rechte, an etwas anderem liegen könnte?

gruß

gaston


----------

