Auf meiner JSP-Seite werden die folgenden Fehler angezeigt:
javax.servlet.jsp.PageContext cannot be resolved to a type
javax.servlet.jsp.JspException cannot be resolved to a type
Ich habe einen Beitrag dazu gesehen und ein paar Dinge ausprobiert, die vorgeschlagen wurden. BalusC lieferte eine großartige Eingabe - JSTL1.2 und Standard.jar dürfen nicht zusammen verwendet werden. Ich habe dies getan und es hat das Problem für einige Zeit behoben - aber es erscheint wieder. Ich bin mir nicht sicher, ob ich weitere Kollisionen habe. Ich habe alle Gläser als Abhängigkeiten in Maven definiert. Das Folgende sind die Abhängigkeiten, die ich angegeben habe pom.xml -
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.2.1</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
<version>0.1.38</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.15</version>
<exclusions>
<exclusion>
<groupId>javax.jms</groupId>
<artifactId>jms</artifactId>
</exclusion>
<exclusion>
<groupId>com.Sun.jmx</groupId>
<artifactId>jmxri</artifactId>
</exclusion>
<exclusion>
<groupId>com.Sun.jdmk</groupId>
<artifactId>jmxtools</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>commons-configuration</groupId>
<artifactId>commons-configuration</artifactId>
<version>1.6</version>
</dependency>
<dependency>
<groupId>org.Apache.tiles</groupId>
<artifactId>tiles-jsp</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.5.6</version>
</dependency>
</dependencies>
Sie müssen die JSP-APIs, die nicht in servlet-api enthalten sind, in Ihr Projekt importieren
In meinem Projekt lautet die Lösung:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
Die Lösung, die für mich funktioniert hat, ist in diese Antwort angegeben. Gehen Sie zu Projekteigenschaften> Gezielte Laufzeiten> Aktivieren Sie das Kontrollkästchen für eine Laufzeit (in meinem Fall Apache Tomcat 7).
Das ist alles. Erstellen Sie das Projekt jetzt und alles wird gut.
Angenommen, dies ist der Schlüssel für eine Webanwendung ...
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
Einige dieser Abhängigkeiten sollten als angegeben werden , da sie vom Container bereitgestellt werden. Sie sollten diese nicht mit Ihrer Anwendung bündeln. Siehe Maven-Abhängigkeitsbereiche . Andernfalls kann es zu undefiniertem Verhalten kommen.
Welche Abhängigkeiten genau angegeben werden, hängt vom Container ab.
"Die Lösung, die für mich funktioniert hat, finden Sie in dieser Antwort. Gehen Sie zu Projekteigenschaften> Gezielte Laufzeiten> Aktivieren Sie das Kontrollkästchen für eine Laufzeit (in meinem Fall Apache Tomcat 7). Das ist alles. Erstellen Sie das Projekt jetzt und alles wird gut . "
Diese Lösung hat bei mir funktioniert.