webentwicklung-frage-antwort-db.com.de

javax.servlet.jsp.PageContext kann nicht in einen Typ aufgelöst werden

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>
42
Punter Vicky

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>
63
Oliver

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.

23
Nav

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.

5
McDowell

"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.

1
Monika