Voici le début de mon fichier JSF:
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://Java.Sun.com/jsf/html"
xmlns:ace="http://www.icefaces.org/icefaces/components"
xmlns:c="http://Java.Sun.com/jsp/jstl/core"
xmlns:f="http://Java.Sun.com/jsf/core">
<h:head>
</h:head>
<h:body>
Cependant, http://www.icefaces.org/icefaces/components
et http://Java.Sun.com/jsp/jstl/core
sont surlignés en rouge avec l'erreur URI is not registered
. Cela provoque l'apparition de nombreuses autres balises ultérieures en rouge avec les erreurs element 'x' is not allowed here
. Voici une image montrant ce que je veux dire:
Lors de la recherche d'une solution, il est apparu que d'autres avec le même problème l'ont résolu en faisant "Fetch External Resource". Cependant, cela n'a pas fonctionné pour moi. Pour les icefaces xmlns xmlns:ace="http://www.icefaces.org/icefaces/components"
, le message d'erreur suivant apparaît: Error while fetching http://www.icefaces.org/icefaces/components
. Et pour le jstl xmlns xmlns:c="http://Java.Sun.com/jsp/jstl/core"
je reçois l’erreur: No XML at the location: http://Java.Sun.com/jsp/jstl/core
.
J'ai également constaté que certaines personnes avaient résolu le problème en supprimant le fichier de métadonnées IntelliJ IDEA workspace.xml
dans le répertoire .idea
. Cela semble fonctionner temporairement ... mais ensuite, il semble que le problème revienne au bout d'un moment. Je dois également reconfigurer plusieurs paramètres de projet que je voudrais éviter.
Toute aide serait appréciée. Je ne suis pas vraiment familiarisé avec les choses xmlns et je suis toujours un débutant en développement d’applications Web. Je vous remercie!
Conformément à la réponse de Mark Vedder, j'ai ajouté manuellement des ressources externes à mon projet et le problème n'a pas encore refait surface.
Avec des ressources non enregistrées, la première solution consiste à utiliser le correctif "Fetch External Resource". Si cela échoue, comme cela a été le cas pour vous (généralement parce que "l'emplacement" est uniquement dans le nom), vous devez le configurer manuellement.
Pour configurer manuellement
.xsd
, .dtd
, etc.) existe dans l'un des fichiers JAR de votre bibliothèque, passez à l'étape 2. Sinon, téléchargez une copie de la ressource. Placez-le à un endroit pratique sur votre système.Schemas
et sélectionnez la ressource dans le fichier jar approprié. Si vous l'avez téléchargé, sélectionnez l'onglet Explorer
(pouvant s'appeler Finder sur Mac), puis sélectionnez et sélectionnez le fichier que vous avez téléchargé.Pour modifier ou définir via IDE Paramètres
Project Settings
, recherchez le noeud Schemas and DTDs
.Schemas
ou votre système de fichiers via l'onglet Explorer
name__.UPDATE
Les différentes définitions JSF Taglib (pour JSF 2.x et versions ultérieures) sont disponibles dans le répertoire com/Sun/faces/metadata/taglib
du fichier jar com.Sun.faces:jsf-impl
. Le fichier JAR jsf-impl
peut être téléchargé à partir de maven central , entre autres.
J'ai essayé tout ce qui est suggéré ici pour que intellij reconnaisse la version correcte de mon fichier jsf. À la fin, j'ai découvert que je n'avais pas de référence directe dans mon projet Web dépendances maven à jsf-api. En d'autres termes, ajouter
<dependency>
<groupId>com.Sun.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>2.1.29-08</version>
<scope>provided</scope>
</dependency>
à mon pom, le fixe. Le problème, c’est que intellij était capable de résoudre un sous-ensemble des symboles jsf, ce qui laisse penser que le pot était vu par celui-ci, bien qu’il s’agisse d’une mauvaise version du pot.
Cette erreur se produit lorsque vous n'attachez pas la bibliothèque de JSF Mojarro. Téléchargez et ajoutez cette bibliothèque dans le projet.
File> Project Structure> Library
ajoutez JSF la bibliothèque.
Si vous utilisez "IntelliJ Idea", veuillez ouvrir la boîte de dialogue "Structure du projet" en cliquant sur Ctrl+Alt+Shift+S, recherchez le JSF not found
dans la notification d'erreur d'artefact (quelque chose dans ce genre), cliquez sur l'option Corriger et modifiez la portée de JSF en provided
. Cela a résolu mon problème.
J'avais le même problème avec les ressources de icefaces.
Une solution à ce problème consiste à donner au projet (encore une fois, si vous ne l’avez pas déjà fait) le support du framework IceFaces (clic droit sur le nom du projet).
Dans mon cas, j’utilisais la version 3.3.0, puis j’ai défini le téléchargement dans le formulaire Add Framework Support.
Intellij téléchargé 3.1.0 et le IDE reconnaît la ressource immédiatement après. Plus tard, j'ai défini à nouveau la version 3.3.0.
Je pense donc que cela suffit pour télécharger à nouveau le framework, et les ressources seront téléchargées dans le dossier META-INF.
Cordialement.-
vous pouvez aussi ajouter "urn:import:<url>"
exemple: xmlns:d="urn:import:com.mypackage.mylovelycode"