Eclipse FeatureNotFoundException
Я построил свой проект с maven
Все успешные сборки и создание свойств eclipse также успешны.
Но когда я открываю проект в Eclipse 4, я получаю эту ошибку
An internal error occurred during: "Loading descriptor for SALYExplorer.".
org.eclipse.emf.ecore.xmi.FeatureNotFoundException: Feature 'taglib' not found. (platform:/resource/SALYExplorer/src/main/webapp/WEB-INF/web.xml, 313, 10)
В этом месте у меня есть некоторые свойства
Несмотря на то, что проект работает плавно, и все в порядке, просто изучая проект в области навигации, Eclipse всегда выдает это поле ошибки (довольно раздражает).
COde в этом месте
<taglib>
<taglib-uri>xx.tld</taglib-uri>
<taglib-location>/WEB-INF/tld/xx.tld</taglib-location>
</taglib>
и xx Определения int it file
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
"http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_2.dtd">
<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>1.2</jsp-version>
.........
</taglib>
Ответы
Ответ 1
Проблема не в taglib вообще, это просто плохое описание ошибки Eclipse.
это грань проекта vs. web.xml dtd.. их версии должны соответствовать!
если web.xml говорит:
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
но проект имеет
"Dynamic Web Module 2.5"
тогда эта ошибка произойдет. измените фасет на 2.3 или web.xml на 2.5... другими словами: они должны совпадать.
Ответ 2
Я столкнулся с этой ошибкой при попытке обновить проект maven в Eclipse (ALT + F5).
web.xml
<web-app xmlns="http://java.sun.com/xml/ns/javaee" version="3.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
и грань проекта
Dynamic Web Modul 3.0
Вот как я мог это исправить:
Удалено все определение xmls-схемы из элемента web-app
<web-app>
затем обновите проект maven (ALT + F5).
Повторно вставьте определения схемы и повторно обновите проект (ALT + F5).
Ответ 3
Согласно jsp_2_1.xsd, включенному из web-app_2_5.xsd, тег taglib должен находиться в теге jsp-config:
<xsd:complexType name="jsp-configType">
<xsd:annotation>
<xsd:documentation>
The jsp-configType is used to provide global configuration
information for the JSP files in a web application. It has
two subelements, taglib and jsp-property-group.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="taglib"
type="javaee:taglibType"
minOccurs="0"
maxOccurs="unbounded"/>
<xsd:element name="jsp-property-group"
type="javaee:jsp-property-groupType"
minOccurs="0"
maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:ID"/>
Когда я завернул taglib в js-config, ошибка исчезла.
<jsp-config>
<taglib>
<taglib-uri>http://www.springframework.org/tags/form</taglib-uri>
<taglib-location>/WEB-INF/taglibs/spring-form.tld</taglib-location>
</taglib>
</jsp-config>
Предыдущие парсеры были, вероятно, более мягкими. Мой конфиг: Eclipse Luna, встроенный maven 3.2.1, web.xml 2.5, Dynamic Web Project facet 2.5.
Ответ 4
В настоящее время, если это просто раздражающее сообщение об ошибке, которое вы хотите исправить, тогда в качестве краткосрочного исправления ознакомьтесь с отключением проверки: Eclipse 'loading descriptor' принимает возрасты
Если вышеуказанное не работает, альтернативой будет использование AHK (Autohotkey), которое потребует немного больше работы с вашей стороны. (Я уже несколько лет использую AHK script, чтобы избавиться от всплывающих окон Eclipse Error, которые меня не волнуют)
Eclipse Ошибка 198630 была поднята почти 5 лет назад и в ней комментарий, который имеет почти идентичное сообщение об ошибке как OP. (Сама ошибка была окончательно закрыта, поскольку она не воспроизводима).
У меня для вас есть следующие вопросы:
- Возможно ли, чтобы вы показали нам журнал ошибок? (Чтобы попасть в журнал ошибок, вы можете взглянуть на окно журнала ошибок или посмотреть фактический файл:
WORKSPACE_HOME/.metadata/.log
. Посмотрите this для получения более подробной информации.)
- Используете ли вы какие-либо определенные серверные адаптеры, такие как WebLogic или Glassfish?
У меня есть следующие рекомендации:
-
В потоке ошибок eclipse проблема была исправлена по крайней мере один раз, обновив до конкретной версии JST. Следовательно, можно ли запустить обновление Eclipse и выяснить, разрешена ли проблема? (Это можно сделать, перейдя в Help → Check for Updates)
-
Можно ли попробовать импортировать проект в Eclipse Indigo (вместо
Juno, который у вас есть) и посмотреть, можете ли вы воспроизвести
проблема? (Загружаемые Eclipse Indigo доступны здесь, и я считаю, что вам понадобится Java EE версия)
Ответ 5
У меня появились те же симптомы, что и проект веб-приложений с использованием maven. В моем случае это связано с тегами taglib struts в web.xml, а проект имеет зависимость struts v1.2.9. Я решил проблему, переключившись на struts v1.3.10. Не спрашивайте, почему это решило проблему.
Если вы находитесь в той же ситуации и обновляете зависимость ваших расположений от 1.2.9 до 1.3.10, обязательно используйте как минимум dtd v2.3 в объявлении DOCTYPE вашего web.xml:
! DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/j2ee/dtds/web-app_2_3.dtd"
иначе у вас возникнет другая проблема (ваш webapp не будет запускаться без подключения к Интернету)
Надеюсь, что это поможет
Ответ 6
Я подозреваю, что проблема связана с Eclipse Web Tools Platform и Java EMF Model. Вот образ списка плагинов, включая Java EMF Model и JEM, из Eclipse Web Tools Platform:
![List of plugins including Java EMF Model and JEM stuff from Eclipse Web Tools Platform]()
https://stackoverflow.com/users/1503535/nitin-gurram, ваша трассировка стека выглядит так?
!ENTRY org.eclipse.core.jobs 4 2 2012-09-28 12:10:00.554
!MESSAGE An internal error occurred during: "Loading descriptor for grch97.".
!STACK 0
org.eclipse.emf.ecore.resource.impl.ResourceSetImpl$1DiagnosticWrappedException: org.eclipse.emf.ecore.xmi.FeatureNotFoundException: Feature 'taglib' not found. (platform:/resource/grch97/WEB-INF/web.xml, 891, 11)
at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.handleDemandLoadException(ResourceSetImpl.java:319)
at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLoadHelper(ResourceSetImpl.java:278)
at org.eclipse.jem.internal.util.emf.workbench.ProjectResourceSetImpl.getResource(ProjectResourceSetImpl.java:1003)
at org.eclipse.jst.jee.model.internal.JEE5ModelProvider.getModelResource(JEE5ModelProvider.java:169)
at org.eclipse.jst.jee.model.internal.Web25ModelProvider.getModelObject(Web25ModelProvider.java:44)
at org.eclipse.jst.jee.model.internal.JEE5ModelProvider.getModelObject(JEE5ModelProvider.java:215)
at org.eclipse.jst.jee.model.internal.common.AbstractMergedModelProvider.loadProviders(AbstractMergedModelProvider.java:261)
at org.eclipse.jst.jee.model.internal.common.AbstractMergedModelProvider.access$2(AbstractMergedModelProvider.java:255)
at org.eclipse.jst.jee.model.internal.common.AbstractMergedModelProvider$LoadModelsWorkspaceRunnable.run(AbstractMergedModelProvider.java:278)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2344)
at org.eclipse.jst.jee.model.internal.common.AbstractMergedModelProvider.loadModel(AbstractMergedModelProvider.java:249)
at org.eclipse.jst.jee.model.internal.common.AbstractMergedModelProvider.getMergedModel(AbstractMergedModelProvider.java:219)
at org.eclipse.jst.jee.model.internal.common.AbstractMergedModelProvider.getModelObject(AbstractMergedModelProvider.java:139)
at org.eclipse.jst.jee.ui.internal.navigator.Web25ContentProvider.getNewContentProviderInstance(Web25ContentProvider.java:69)
at org.eclipse.jst.jee.ui.internal.navigator.LoadingJeeDDJob.run(LoadingJeeDDJob.java:50)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
Caused by: org.eclipse.emf.ecore.xmi.FeatureNotFoundException: Feature 'taglib' not found. (platform:/resource/grch97/WEB-INF/web.xml, 891, 11)
at org.eclipse.emf.ecore.xmi.impl.XMLHandler.reportUnknownFeature(XMLHandler.java:1985)
at org.eclipse.emf.ecore.xmi.impl.XMLHandler.handleUnknownFeature(XMLHandler.java:1949)
at org.eclipse.emf.ecore.xmi.impl.XMIHandler.handleUnknownFeature(XMIHandler.java:145)
at org.eclipse.emf.ecore.xmi.impl.XMLHandler.handleFeature(XMLHandler.java:1893)
at org.eclipse.emf.ecore.xmi.impl.XMLHandler.processElement(XMLHandler.java:1017)
at org.eclipse.emf.ecore.xmi.impl.XMIHandler.processElement(XMIHandler.java:81)
at org.eclipse.emf.ecore.xmi.impl.XMLHandler.startElement(XMLHandler.java:995)
at org.eclipse.emf.ecore.xmi.impl.XMLHandler.startElement(XMLHandler.java:706)
at org.eclipse.emf.ecore.xmi.impl.XMIHandler.startElement(XMIHandler.java:163)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.startElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at javax.xml.parsers.SAXParser.parse(Unknown Source)
at org.eclipse.emf.ecore.xmi.impl.XMLLoadImpl.load(XMLLoadImpl.java:175)
at org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl.doLoad(XMLResourceImpl.java:240)
at org.eclipse.emf.ecore.resource.impl.ResourceImpl.load(ResourceImpl.java:1505)
at org.eclipse.emf.ecore.resource.impl.ResourceImpl.load(ResourceImpl.java:1284)
at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLoad(ResourceSetImpl.java:259)
at org.eclipse.jem.internal.util.emf.workbench.ProjectResourceSetImpl.demandLoad(ProjectResourceSetImpl.java:811)
at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLoadHelper(ResourceSetImpl.java:274)
... 14 more
Ответ 7
Мне удалось это исправить, удалив валидатор из файла .project для каждого из проектов, у которых была проблема.
Ответ 8
У меня была аналогичная ошибка с использованием eclipse 4.3 (Kepler), maven 3.1.0, tomcat 6.0.37 и jdk7 (также установлены jre6), и нашел решение исправить это или, по крайней мере, избавиться от утомительных ошибок путем настройки tomcat в eclipse.
В настройках- > Сервер- > Среды времени выполнения определите новую среду выполнения "Apache Tomcat 6.0" и выберите установку jre6 из установленных JRE.
Затем просмотрите Targeted Runtimes в свойствах проекта. Apache Tomcat v6.0 должен быть связан с Java Runtime Environment v1.6 (если еще не определено, нажмите new и убедитесь, что выбранная JRE - это среда выполнения java 1.6).
Надеюсь, что это поможет
Ответ 9
Мне удалось обновить грань проекта Java до 1.5 и ошибки были остановлены.
Ответ 10
В моем случае эта проблема была решена с помощью версии
org.eclipse.emf.ecore.xmi_2.10.2.v20150123-0348
и org.eclipse.emf.ecore.xmi.source_2.10.2.v20150123-0348
и
org.eclipse.emf.ecore.xmi_2.10.2.v20150123-0348
и
org.eclipse.emf.ecore.xmi.source_2.10.2.v20150123-0348
и
org.eclipse.emf.common_2.10.1.v20150123-0348
в пути сборки. Раньше баки старой версии использовались в дополнение к новой версии.