web-dev-qa-db-fra.com

javax.servlet.jsp.PageContext ne peut pas être résolu en un type

Je vois les erreurs ci-dessous dans ma page jsp -

javax.servlet.jsp.PageContext cannot be resolved to a type
javax.servlet.jsp.JspException cannot be resolved to a type

J'ai vu un article à ce sujet et j'ai essayé peu de choses qui ont été suggérées. BalusC a fourni une excellente entrée - JSTL1.2 et Standard.jar ne doivent pas être utilisés ensemble. Je l'ai fait et cela a résolu le problème pendant un certain temps - mais il réapparaît. Je ne sais pas si j'ai d'autres collisions de pots. J'ai défini tous les pots comme des dépendances dans Maven. Voici les dépendances que j'ai spécifiées 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

Vous devrez importer dans votre projet les API JSP, qui ne sont pas incluses dans servlet-api

Dans mon projet, la solution est:

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jsp-api</artifactId>
        <version>2.0</version>
        <scope>provided</scope>
    </dependency>
63
Oliver

La solution qui a fonctionné pour moi, est donnée dans cette réponse . Allez dans les propriétés du projet> Runtimes ciblés> Cochez la case pour un runtime (Apache Tomcat 7 dans mon cas).
C'est tout. Construisez simplement le projet maintenant et tout ira bien.

23
Nav

En supposant que c'est le pom pour une application web ...

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>2.5</version>
</dependency>

Un certain nombre de ces dépendances doivent être définies comme fournies car elles sont provisionnées par le conteneur. Vous ne devez pas les regrouper avec votre demande. Voir étendues de dépendance Maven . Ne pas le faire peut entraîner un comportement non défini.

Les dépendances fournies dépendent du conteneur.

5
McDowell

"La solution qui a fonctionné pour moi, est donnée dans cette réponse. Allez dans les propriétés du projet> Runtimes ciblés> Cochez la case pour un runtime (Apache Tomcat 7 dans mon cas). C'est tout. Construisez simplement le projet maintenant et tout ira bien . "

Cette solution a fonctionné pour moi.

1
Monika