JAR中的JSF组合组件在NetBeans中无法识别

时间:2014-02-06 15:40:01

标签: jsf jsf-2 netbeans jar composite-component

我在项目中添加了一个常用的JAR。罐子看起来像......

CommonWeb.jar
 |-- META-INF
 |    |-- resources
 |    |    `-- common
 |    |         |-- css
 |    |         |    `-- my.css
 |    |         |-- js
 |    |         |    `-- my.js
 |    |         |-- images
 |    |         |    `-- my.png
 |    |         |-- components
 |    |         |    `-- mycomposite.xhtml
 |    |         `-- templates
 |    |              `-- mytemplate.xhtml
 |    |-- faces-config.xml
 |    `-- MANIFEST.MF
 :

除了Netbeans无法识别我的复合组件外,一切正常。试图使用该组件的页面看起来像这样......

<ui:composition template="/resources/common/templates/mytemplate.xhtml"
                xmlns="http://www.w3.org/1999/xhtml"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:p="http://primefaces.org/ui"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:cmn="http://java.sun.com/jsf/composite/common/components">

    <ui:define name="content">
        ...
        <cmn:mycomposite ... />
        ...
    </ui:define>
</ui:composition>

项目将编译运行,不用担心。但是IDE在<cmn:mycomposite ... />上给了我红色的波浪线并且没有自动完成等等。如果我将组件复制到项目自己的资源文件夹中,它将全部正常工作,所以似乎netbeans只是不希望罐子。

有很多类似问题的问题,例如:

...但没有令人满意的解决方案或解决方法。

此外还有一些netbeans错误报告,但这些似乎都是“固定的”

是否有一些我缺少的配置?有没有人真正设法使用最新版本的NetBeans(编写本文时的NetBeans 7.4补丁2)?有没有人找到一种实际可行的解决方法?

更新

NetBeans 8中继续出现此问题

1 个答案:

答案 0 :(得分:0)

此问题仅限IDE问题,并在版本8.1中继续。它源自Netbeans bugzilla中确定的错误 - 特别是在&#34; XFML的JSF编辑器&#34; module(org.netbeans.modules.web.jsf.editor)

我通过下载Netbeans的8.1版源文件并自行应用建议的补丁来解决了这个问题。我猜测它在早期版本中是一个类似的问题,但我没有检查过。

要下载和编译Netbeans,您可以按照&#34;如何&#34;在here

摘要变更:

CompositeComponentModel.java第296行改为:

if (parent != null && parent.getName().equalsIgnoreCase("META-INF")) { //NOI18N

JsfBinaryIndexer.java第74行改为:

namePattern = ".*\\.tld|.*\\.taglib\\.xml|.*\\.xhtml",

第81行增加的索引器版本更改为:

static final int INDEXER_VERSION = 11; //NOI18N

鉴于该bug正在被跟踪,希望它能够进入下一个版本。