21

我已经用 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 总是抛出这个错误框(很烦人)。

该位置的代码

<taglib>
    <taglib-uri>xx.tld</taglib-uri>
    <taglib-location>/WEB-INF/tld/xx.tld</taglib-location>
</taglib>

和 xx 定义 int 它的文件

<!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>
4

11 回答 11

26

问题根本不是标签库,它只是 Eclipse 的错误描述。

这是项目方面与 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"

然后会发生此错误.. 将 facet 更改为 2.3 或将 web.xml 更改为 2.5... 换句话说:它们必须匹配..

于 2013-03-14T09:21:02.543 回答
6

我在尝试更新 Eclipse (ALT+F5) 中的 Maven 项目时遇到了这个错误。

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

这是我可以解决的方法:

web-app从元素中删除了所有 xmls-schema 定义

<web-app>

然后更新 maven 项目 (ALT+F5)。

重新插入架构定义并重新更新项目 (ALT+F5)。

于 2014-05-06T07:11:04.963 回答
4

根据 web-app_2_5.xsd 中包含的 jsp_2_1.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。

于 2014-05-16T17:01:57.783 回答
1

目前,如果它只是您想要修复的烦人的错误消息,那么作为短期修复,请查看此处禁用验证:Eclipse 'loading descriptor' 需要很长时间

如果上述方法不起作用,另一种方法是使用 AHK(Autohotkey),这将在您结束时花费更多的工作。(几年来我一直在使用 AHK 脚本来摆脱我不关心的 Eclipse 错误弹出窗口)

Eclipse错误 198630是在 5 年前提出的,其中有一条评论与 OP 的错误消息几乎相同。(错误本身最终因不可重现而被关闭)。

我有以下问题要问你:

  1. 您可以向我们展示错误日志吗?(要查看错误日志,您可以查看错误日志视图或查看实际文件:WORKSPACE_HOME/.metadata/.log。请查看以获取更多详细信息。)
  2. 您是否使用任何特定的服务器适配器,例如 WebLogic 或 Glassfish?

我有以下建议:

  1. 在 eclipse 错误线程中,通过更新到特定的 JST 版本至少修复了一次问题。因此,您是否可以运行 Eclipse 更新并查看问题是否已解决?(这可以通过转到帮助 -> 检查更新来完成)

  2. 是否可以尝试在 Eclipse Indigo(而不是您目前拥有的 Juno)中导入项目并查看是否可以重现该问题?(Eclipse Indigo 可在此处下载,我相信您需要Java EE 版本

于 2012-08-06T09:55:38.310 回答
0

我刚刚得到了同样的症状,一个使用 maven 的 web-app 项目。就我而言,与 web.xml 中的 struts taglib 标记有关,并且该项目具有 struts v1.2.9 依赖项。我通过切换到 struts v1.3.10 解决了这个问题。不要问为什么这解决了问题。

如果您处于相同的情况并且将您的 struts 依赖项从 1.2.9 升级到 1.3.10,请确保在 web.xml 的 DOCTYPE 声明中至少使用 dtd v2.3:

!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web 应用程序 2.3//EN" "http://java.sun.com/j2ee/dtds/web-app_2_3.dtd"

否则你会遇到另一个问题(如果没有互联网连接,你的 webapp 将无法启动)

希望这可以帮助

于 2012-08-24T00:33:44.793 回答
0

我怀疑问题出在 Eclipse Web 工具平台和 Java EMF 模型上。这是一个插件列表的图像,包括来自 Eclipse Web 工具平台的 Java EMF 模型和 JEM 东西: 插件列表,包括来自 Eclipse Web 工具平台的 Java EMF 模型和 JEM 内容

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
于 2012-09-28T16:25:12.720 回答
0

我设法通过从每个有问题的项目的 .project 文件中删除验证器来解决这个问题。

于 2012-12-19T16:11:56.077 回答
0

我在使用 eclipse 4.3(Kepler)、maven 3.1.0、tomcat 6.0.37 和 jdk7(还安装了 jre6)时遇到了类似的错误,并找到了解决方案来修复它,或者至少通过配置 tomcat 来摆脱繁琐的错误在日食。

在 Preferences->Server-> Runtime Environments 中,定义一个新的运行时环境“Apache Tomcat 6.0”并从已安装的 JRE 中选择 jre6 安装。

然后查看项目属性中的目标运行时。Apache Tomcat v6.0 应该与 Java Runtime Environment v1.6 相关联(如果尚未定义,请按 new 并检查所选 JRE 是否为 java 1.6 运行时)。

希望能帮助到你

于 2013-09-18T10:22:21.303 回答
0

我能够将项目 Java 方面更新为 1.5,并且错误停止了。

于 2014-05-15T20:26:09.683 回答
0

就我而言,这个问题通过使用版本得到了解决

org.eclipse.emf.ecore.xmi_2.10.2.v20150123-0348org.eclipse.emf.ecore.xmi.source_2.10.2.v20150123-0348org.eclipse.emf.ecore.xmi_2.10.2.v20150123-0348org.eclipse.emf.ecore.xmi.source_2.10.2.v20150123-0348org.eclipse.emf.common_2.10.1.v20150123-0348

构建路径中的 jars。尽管存在新版本,但仍在使用旧版本的早期 jar。

于 2018-01-02T06:33:55.677 回答
0

在 Eclipse 中右键单击项目 -> 构建路径 -> 配置构建路径 -> 项目构面 -> 取消选中动态 Web 模块

注意:只要您不打算通过嵌入式应用服务器从 Eclipse 中运行 Web 应用,这种方法就很好。

于 2019-03-11T02:48:10.357 回答