URI JSF xmlns не зарегистрирован в IntelliJ IDEA
вот начало моего файла 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>
, http://www.icefaces.org/icefaces/components
и http://java.sun.com/jsp/jstl/core
выделены красным цветом с ошибкой URI is not registered
. Это приводит к появлению многих других последующих тегов красным цветом с ошибками element 'x' is not allowed here
. Вот изображение, показывающее, что я имею в виду:
попытки решения:
при поиске решения появились некоторые другие с той же проблемой, решив ее, выполнив "выборку внешнего ресурса". Однако этого не произошло. работать на меня. Для icefaces xmlns xmlns:ace="http://www.icefaces.org/icefaces/components"
я получаю сообщение об ошибке:Error while fetching http://www.icefaces.org/icefaces/components
. И для jstl xmlns xmlns:c="http://java.sun.com/jsp/jstl/core"
Я получаю сообщение об ошибке:No XML at the location: http://java.sun.com/jsp/jstl/core
.
Я также нашел, что некоторые люди решили его, удалив файл метаданных IntelliJ IDEA workspace.xml
на
7 ответов
с незарегистрированными ресурсами первым решением является использование quickfix" Fetch External Resource". Если это не удается, как это было для вас в этом случае (обычно потому, что" местоположение " находится только в названии), вам нужно вручную настроить его.
Вручную Настроить
- если ресурс (т. е.
.xsd
,.dtd
, etc.) существует в одной из ваших библиотек jars, перейдите к Шагу 2. В противном случае загрузите копию ресурса. Положи его куда-нибудь. удобно в вашей системе. - в IDEA, с курсором на ошибку, откройте меню быстрого исправления / намерения, введя Alt+ Enter и выберите "вручную настроить внешний ресурс". (Если у вас нет этой опции (на основе версии IntelliJ IDEA), перейдите к следующему разделу для получения инструкций.)
- если ресурс находится в банке, выберите
Schemas
tab и выберите ресурс из соответствующей банки. Если вы загрузили его, выберитеExplorer
вкладка (может называться Finder в Mac) и выберите файл, который вы скачали. - нажмите OK и позвольте IDEA индексировать ресурс.
для редактирования или установки через настройки IDE
- откройте диалог настроек через Ctrl+Alt+ Enter или Настройки Файл >.
- чтобы настроить для всех будущих новых проектов, чтобы эта схема была доступна, откройте аналогичную диалог через Файл > Другие Настройки > Настройки По Умолчанию
- на найти
Schemas and DTDs
узел. - настройте нужную схему. В правом верхнем углу находятся значки добавления, редактирования и удаления. Как и выше, вы можете выбрать файл в библиотеке через
Schemas
tab или ваша файловая система черезExplorer
tab.
обновление
различные определения JSF Taglib (для JSF 2.икс и выше) можно найти в на com.sun.faces:jsf-impl
jar. The jsf-impl
файл JAR можно загрузить из maven central в других местах.
Если вы используете "IntelliJ Idea", откройте диалоговое окно" структура проекта", нажав Ctrl+Alt+Shift+S искать JSF not found
в уведомлении об ошибке артефакта (что-то вроде этого) нажмите кнопку "Исправить" и измените область JSF на provided
. Это исправило мою проблему.
эта ошибка возникает, когда вы не присоединяете библиотеку JSF Mojarro. Загрузите и добавьте эту библиотеку в проект.
File> Project Structure> Library
добавить JSF в библиотеку.
У меня была такая же проблема с ресурсами icefaces.
Один из способов исправить это-предоставить проекту (опять же, если вы этого еще не сделали) поддержку icefaces framework (щелкните правой кнопкой мыши на имени проекта).
В моем случае я использовал 3.3.0, затем я установил загрузку в форме поддержки Add Framework.
Intellij загрузил 3.1.0, и IDE распознает ресурс сразу после этого. Позже я снова установил версию 3.3.0.
Итак, я думаю, достаточно снова загрузить фреймворк, и ресурсы будут загружены в папку META-INF.
С уважением.-
Я пробовал все, что предлагалось здесь, чтобы intellij распознал правильную версию моего jsf. В конце я обнаружил, что у меня нет прямой ссылки в зависимостях Maven моего веб-проекта на JSF-api. Другими словами, добавление
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>2.1.29-08</version>
<scope>provided</scope>
</dependency>
к моему помпону, исправил его. Запутанная вещь заключается в том, что intellij смог разрешить подмножество символов jsf, что заставляет вас думать, что jar был замечен им, хотя и неправильной версией jar.
У меня была та же проблема... но в моем случае, проблема была в том, что по ошибке я сохранил файл с расширением ".XML." Превращение в ".xhtml " решил проблему