Eclipse:使用JBoss找不到“http://java.sun.com/jsf/core”的标记库描述符

时间:2014-03-18 13:50:55

标签: jboss jstl tld wildfly

我知道很多次都会问这个问题,因为我搜索了几个小时的解决方案,但是从来没有回答过(或者至少不是我的情况)。

我正在使用Wildfly 8.0(来自JBoss),所以我知道我不需要添加jstl jar或JSF jar,因为JBoss已经提供了实现。

现在即使告诉eclipse使用Wildfly运行时库,我也会收到上述错误。我查了一下,jboss-jstl-api_1.2_spec-1.0.4.Final.jar是库的一部分

我怎样才能解决这个问题?我尝试下载jstl jars(来自https://jstl.java.net/)并将它们放在lib目录中,但它无效。

将罐子复制到" lib"当我使用没有jstl实现的Tomcat时,它可以正常工作。但不是Wildfly(也许是因为eclipse忽略了我放在lib目录中的罐子,因为Wildfly有自己的罐子?但是为什么我首先得到错误?我很困惑)。

感谢任何可以帮助我的人。

编辑:我忘了确切,即使在我的所有JSP上都存在这些错误,该项目也会在服务器上构建并完美运行。 这些错误是特定于eclipse的,当使用这些(未知的eclipse)标记时,它无法识别taglib并在taglib声明和警告中显示恼人的错误消息。另外,我无法使用代码完成。

编辑:我暂时通过在构建路径中添加独立的myfaces和jstl库来绕过问题。我想虽然eclipse使用服务器端可用的jar。 (例如,对于JPA,我不需要将hibernate库添加到构建路径,我只是告诉eclipse,在服务器运行时可以使用JPA实现,并且它在代码完成和所有内容方面都运行良好。)

2 个答案:

答案 0 :(得分:9)

好的,不必添加任何额外的库(服务器不需要)这里除了将Wildfly运行时库添加到项目之外我还要做的事情: 转到项目/属性/项目构面/ Java Server Faces ,并在库类型(而不是用户库)中选择目标运行时提供的库

答案 1 :(得分:3)

我对eclipse中的JSF支持感到非常失望。我一直都遇到这样的警告。

我使用JBoss 7.1.1甚至添加JBoss作为项目的目标运行时并没有帮助。
对我有用的唯一解决方案是在Eclipse中定义新的JSF库:Window Preferences -> Java -> Build Path -> User Libraries -> click New(指向jsf-impl.jarjsf-api.jar)。然后将这样的库添加到项目的构建路径中。

它解决了所有烦人的日食错误无法找到标签库。所以它与@Riccatti第一个解决方案非常相似。

Btw:answer我在eclipse论坛上发现,这个错误通常是由类路径上不存在的JSF标记库(存在于jsf-impl.jar中)引起的。