Предупреждение: эта страница вызывает пространство имен XML http://xmlns.jcp.org/jsf/XXX, объявленное с префиксом XXX, но для этого пространства имен не существует библиотеки тегов

Я использую Netbeans 8.02, который, кажется, понимает составной компонент, который он помог мне создать. Он находится в папке /resources/ezcomp (для этого используются Nebeans по умолчанию) и выглядит так:

<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:cc="http://xmlns.jcp.org/jsf/composite"
  xmlns:p="http://primefaces.org/ui"
  xmlns:h="http://xmlns.jcp.org/jsf/html"
  xmlns:f="http://xmlns.jcp.org/jsf/core">

<!-- INTERFACE -->
<cc:interface>
    <cc:attribute name="pobject"
                  type="test.database.UserItem"
                  required="true" />
</cc:interface>

<!-- IMPLEMENTATION -->
<cc:implementation>
    ...

Когда я редактирую страницу для использования компонента, NetBeans включает его в свою базу данных для завершения кода и создает ссылку на xmlns на странице, которая выглядит следующим образом.

xmlns:ezcomp="http://xmlns.jcp.org/jsf/composite/ezcomp"

Проблема в том, что когда Mojarra 2.1.6 (Glassfish 3) сталкивается с этим, он выдает сообщение:

Warning: This page calls for XML namespace 
http://xmlns.jcp.org/jsf/composite/ezcomp declared with 
prefix ezcomp but no taglibrary exists for that namespace.

В прошлый раз, когда я делал это, URL был java.sun.com, поэтому я думаю, что индустрия двигалась дальше, пока меня не было. Если я изменю URL на java.sun.com, он превратится в исключение нулевого указателя.

У кого-нибудь есть идеи как это исправить?

1 ответ

Решение

http://xmlns.jcp.org/jsf/* пространство имен является новым с JSF 2.2. Эти предупреждения предполагают, что вы на самом деле используете JSF 2.0/2.1 или настроили свой проект для использования JSF 2.0/2.1.

Если вы не используете / не ориентируетесь на JSF 2.2, то вам вообще не следует использовать пространство имен, представленное в JSF 2.2. В JSF 2.0/2.1 пространство имен XML http://java.sun.com/jsf/* как ниже.

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:cc="http://java.sun.com/jsf/composite"
>

Если вы уверены, что на самом деле используете JSF 2.2, вам нужно настроить целевую версию JSF где-нибудь в свойствах проекта. В Eclipse вы можете найти его в Project Facets. На картинке ниже показана версия 2.0. Вы должны изменить это на 2,2 тогда.

Если вы не можете выбрать JSF 2.2, скорее всего, сама среда IDE нуждается в обновлении. В случае Eclipse была добавлена ​​поддержка JSF 2.2 в WTP 3.5, которая впервые представлена ​​в Eclipse 4.4 Luna.

Смотрите также:

Другие вопросы по тегам