2011-01-06 7 views
3

Ich habe Probleme, meine JSP-Seite eine Java-Klasse zu laden, die in einer JAR-Datei ist. Die Botschaft, die ich erhalten erscheint eine Klasse nicht gefunden Ausnahme anzuzeigen:Wo kann ich JAR-Dateien in Tomcat 6 speichern?

Jan 6, 2011 12:21:45 PM org.apache.catalina.core.StandardWrapperValve invoke 
SEVERE: Servlet.service() for servlet jsp threw exception 
org.apache.jasper.JasperException: Unable to compile class for JSP: 

An error occurred at line: 72 in the jsp file: /xmlloader.jsp 
FactArray cannot be resolved to a type 
69:   sourceType = "1"; 
70: } 
71: 
72: FactArray fa = new FactArray(); 
73: Fact f; 
74: 
75: /***********************/ 

Der Typ FactArray ist einer meiner Klassen in einem Paket com.mypackage.fact.FactArray, die in myjar.jar existiert. myjar.jar ist ein separates Java-Projekt (mit NetBeans, aber ich glaube nicht, dass das relevant ist).

Ich schließe das Paket in meine JSP wie folgt:

<%@ page import="com.mypackage.fact.*" %> 

ich meine Website und JSPs in Tomcat 6 als WAR-Datei bereitstellen. Ich schließe myjar.jar in diesem WAR in WEB-INF/lib ein, aber das funktioniert nicht. Ich habe versucht, myjar.jar in meinen tomcat/lib Ordner zu stellen, aber das funktioniert auch nicht.

Ich habe den Server mehrmals zwischen den Änderungen prallte. Ich habe hier eine ganze Reihe von Fragen gelesen, die sagen: "Lege es in WEB-INF/lib", aber das funktioniert nicht, also stelle ich meine eigene Frage.

Wo muss ich gängige JAR-Dateien ablegen, damit sie von Tomcat abgeholt werden?

+0

Ich hoffe, dieser Code wird vor seiner Deklaration '<% @ page import =" com.mypackage.fact. * "%>' –

+0

yup, Erklärung vor dem Code ... – Simon

Antwort

1

Stellen Sie sicher, dass Sie die korrekten Importanweisungen im Code haben. Je nachdem, wie Sie Ihr env einrichten, platzieren Sie die Gläser in der webapps/ROOT/lib

9

Putting in /WEB-INF/lib Ordner der bereitgestellten Webapp sollte funktionieren.

Wenn das nicht funktioniert, dann sind die möglichen Ursachen sind:

  • Die JAR nicht die gewünschte Klasse enthält bei allen (Auszug mit ZIP-Tool und überprüfen)
  • Es gibt einen Tippfehler in Ihrem Import und/oder Klassendeklaration (mind Groß- und Kleinschreibung!)

keine Zusammenhang mit dem Problem, mit Scriptlets ist nicht die beste practic e. Betrachten Sie eine servlet.

+0

hmm, das ist ein interessanter Kommentar. Kannst du sagen, warum du denkst, ich hätte einen Skriptlet (ich dachte, ich hätte ein Servlet). – Simon

+0

... warte, ich verstehe ... aber es ist immer noch interessant. Aber jetzt denke ich, dass ich eine Wissenslücke habe. Statt dessen, was würde ich tun? – Simon

+0

Hier starten: [Wie Java-Code in JSP-Dateien zu vermeiden?] (Http://stackoverflow.com/questions/3177733/how-to-avoid-java-code-in-jsp-files) – BalusC