Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ich möchte - ganz klassisch - in einer Webanwendung von einer JavaServer Page aus auf eine Java Klasse zugreifen, die im Verzeichnis WEB-INF liegt. Zum Einsatz kommen die IntelliJ IDEA 9.0 und Tomcat 6. Die pure JSP kann ich im Browser aufrufen, nur sobald ich versuche auf eine Java Klasse zuzugreifen, kann dies dann nicht aufgelöst werden.
Die JSP
Java:
<%@ page import="com.comany.bde.*" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Simple jsp page</title></head>
<body>Place your content here</body>
</html>
<%
out.println(" Hello from the JSP ");
Sammelauftrag sa = new Sammelauftrag();
%>
Die Java Klasse im Verzeichnis WEB-INF/com/comany/bde
Java:
package com.comany.bde;
public class Sammelauftrag {
public String hello() {
return "Hello from the java class";
}
}
Die Fehlermeldung
Java:
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: 10 in the jsp file: /web/index.jsp
Sammelauftrag cannot be resolved to a type
7: <%
8: out.println(" Hello from the JSP ");
9:
10: Sammelauftrag sa = new Sammelauftrag();
11:
12: %>
Ich vermutet, dass ich in der IntelliJ IDEA noch ein paar Parameter setzen muss, da z. B. die umgewandelten class files in einen gesonderten Verzeichnis namens out stehen. Auch ist mir nicht klar, ob die Verzeichnispfad nicht WEB-INF/classes/com/comany/bde heißen müssen (mit classes funktioniert es allerdings auch nicht). Die IDEA ist für mich Neuland ...
Für jeden Hinweis im Voraus schon einmal vielen herzlichen Dank.
probier mal [c]com.comany.bde.Sammelauftrag sa = new com.comany.bde.Sammelauftrag();[/c] - die Klasse ist ja in einem package... bzw dann ueber einen import
und ja es müsste in WEB-INF/classes/com.... liegen
Habe es mit der ausführlichen Definition - wie vorgeschlagen - versucht, leider mit dem selben Ergebnis.
Das Import-Statements in der JSP wurden automatisch von der IDE eingeführt, so dass ich davon ausgehe, dass dies stimmt. Wenn ich jedoch unter dem Verzeichnis WEB-INF den Ordner classes anlege und hier die Java Klassen ablege, steht später auch in den import-Statments classes.com.comany.bde, was sicherlich nicht richtig ist.
Mir ist nicht klar, wie IDEA die umgewandelten class files für Tomcat bereitstellt. Oder ob ich noch etwas konfigurieren muss - sicherlich fehlt da noch etwas, aber was nur?
Die IntelliJ IDEA trennt java und class Dateien, so dass die compilierten Klassen im Verzeichnis meineAnwendung/out stehen. Habe auch schon probiert die class-Datei in das Source-Verzeichnis zu kopieren - ohne Erfolg, bzw. als out-Verzeichnis das source-Verzeichnis anzugeben - dies hat der Entwicklungsumgebung allerdings überhaupt nicht gefallen (was ich sogar verstehen kann).
Bei der Tomcat Configuration habe ich Build "meineAnwendung:war expolded" artifact aktiviert, ist das überhaupt richtig? Auch die Angaben für Facets und Artifacts habe ich nach bestem Wissen und Gewissen gesetzt - was keine Garantie ist, dass alles stimmt ...