demande.getServletContext() n'est pas trouvé, même avec le nouveau POT
Mon compilateur n'est pas capable de trouver le HttpServletRequest getServletContext() méthode.
Je ne fais pas quelque chose de trop compliqué:
public static void setMySortedSet(HttpServletRequest request, SortedSet<String> set)
{
setMySortedSet(request.getServletContext(), set);
}
Un dépannage, j'ai essayé:
- Découvert la méthode a été créée en 2.3, je l'ai donc inclus un POT qui reflète (et de l'avoir dans mon Eclipse build path)
- - Je inclure le POT dans mon build.xml classpath.
Quand j'en utilisant Eclipse la méthode est trouvé mais quand j'essaie de compiler les classes, je vois ceci:
compile:
[javac] Compiling 1 source files to C:\...\workspace\proj\build\WEB-INF\classes
[javac] C:\...\workspace\proj\src\main\Helper.java:26: cannot find symbol
[javac] symbol : method getServletContext()
[javac] location: interface javax.servlet.http.HttpServletRequest
[javac] return getURISet(request.getServletContext());
[javac] ^
[javac] Note: C:\...\workspace\proj\src\main\Helper.java uses unchecked or unsafe operations.
[javac] Note: Recompile with -Xlint:unchecked for details.
[javac] 1 error
Toutes les idées de ce que je pourrais être absent? J'apprécie toutes les réponses.
OriginalL'auteur Dave Brock | 2011-10-22
Vous devez vous connecter pour publier un commentaire.
Selon la Javadoc la
ServletRequest#getServletContext()
méthode est introduite dans le Servlet 3.0, pas 2.3. Vous devez installer et à intégrer une Servlet 3.0 compatible conteneur comme Tomcat 7, Glassfish 3, etc dans Eclipse et définir la d'Exécution Cible de votre Projet Web Dynamique pour le conteneur. Lorsque vous faites cela correctement, alors vous ne pas devez manuellement violon avec la construction de chemins oubuild.xml
à tous, Eclipse gère pour vous automatiquement. Vous pouvez aussi ne pas besoin de télécharger lâche les fichiers JAR de l'arbitraire d'un servletcontainer d'un autre modèle, la version et le mettre dans votre buildpath. Il ne conduirait qu'à l'avenir classpath et la portabilité des ennuis.Voir aussi:
Notez qu'il faut une dynamique de Web projet. Votre projet doit être créé en tant que Servlet 3.0 projet (vous pouvez le changer ensuite dans Projet Facettes propriété). Seulement Eclipse Helios (3.6) et les nouveaux appui de cette (sinon vous avez besoin pour mettre à niveau). Vous devez également vous assurer que votre
web.xml
racine déclaration est conforme Servlet 3.0 (il vous suffit de modifier manuellement le fichier XML).C'est un Projet Web Dynamique (désolé pour la faute de frappe) et quand nous allons dans les Projet Facettes le Web Dynamique Module est v3.0. L'web.xml lit:
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
.Et vous, vous faites à coup sûr pas ont tous triés sur le volet servletcontainer des bibliothèques spécifiques à votre
/WEB-INF/lib
dossier ou en projet buildpath? Voir aussi le "Voir aussi" lien dans ma réponse.J'ai vérifié votre autre page et assuré que tout est à la bonne version et je n'ai pas d'autres dépendances. Tellement frustrant!
OriginalL'auteur BalusC
La
getServletContext()
méthode est introduite dans le Servlet 3.0, pas 2.3. Mais si vous voulez obtenir leServletContext
puis une autre méthode pour le faire est:De cette façon, vous pouvez obtenir le stockés les paramètres de la Requête de la Valeur dans les différents navigateur....
OriginalL'auteur Neha Velhal
J'ai eu le même problème récemment. En fait, il a commencé après l'ajout de quelques nouveaux pots. Ant trouvé HttpServletRequest classe selenium-server.jar qui vient en premier dans l'ordre alphabétique avant de servlet-api.jar (qui était censé être utilisé).
Alors j'ai juste renommé selenium-server.jar pour x-selenium-server.jar et tout a commencé à construire OK, comme d'habitude.
OriginalL'auteur Vitalii
Ce n'est pas un problème avec votre compilateur java. javax est fourni par le conteneur de servlet lui-même et vous devez inclure conteneur de servlet jar fichiers à votre projet d'installation.
javax.servlet.http et de toutes les classes liées servlet et contexte de servlet de programmation est liée à votre Conteneur de Servlet. Alors arrêtez de worrient à rien d'autre et de vérifier si Tomcat bibliothèques sont inclus dans votre WEB-APP chemin de classe.
Si pas en ajouter, et tout ira bien.
Clic droit sur votre projet > Propriétés > Ajout de Bibliothèques > Server Runtime
et choisissez votre serveur et qui est associée à votre application.
Vous avez terminé, cela comprend Conteneur de Servlet bibliothèques à votre projet et HttpServletRequest et HttpServletResponse classes seront résolus.
Espérons que cela aide, plus d'informations sur l'Architecture de Servlet et le contexte peuvent être trouvés Ici.
OriginalL'auteur neel4soft