多数の複合コンポーネントを JAR にパッケージ化しました。ただし、(Maven を使用して) 別のプロジェクトでそれらを使用すると、Netbeans エディターは、プロジェクトが期待どおりにコンパイルおよび実行されても、複合コンポーネントを使用する行の下に赤いエラー行を配置します。
複合コンポーネント JAR のフォルダー構造は次のようになります。
compositeComponent.jar
META-INF
faces-config.xml
highcharts-taglib.xml
MANIFEST.MF
web.xml
maven
// maven stuff.
resources
highcharts
Chart.xhtml
Series.xhtml
Tooltip.xml
nz
co
kevindoran
highcharts
example
NZPopulationTrend.class
次のhighcharts.taglib.xml
ようになります。
<facelet-taglib version="2.0" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facelettaglibrary_2_0.xsd">
<namespace>http://nz.co.kevindoran/highcharts-jsf</namespace>
<composite-library-name>highcharts</composite-library-name>
</facelet-taglib>
[補足:faces-config.xml
とweb.xml
は、ファイル拡張子を WAR に変更することで「JAR」を WAR として展開できるようにするために存在します (これは、例を実行するために行われます)。
現在のプロジェクトでは、上記のプロジェクトに次のように Maven の依存関係を指定しています。
<dependency>
<groupId>nz.co.kevindoran</groupId>
<artifactId>jsf-menu</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
JSF ページでは、次のように複合コンポーネントを使用します。
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:hc="http://nz.co.kevindoran/highcharts-jsf">
....
<hc:TimeChart title="Price Over Time" xLabel="Date" yLabel="Sold Price (NZD)">
<hc:TimeSeries name="Sold" series="#{cc.attrs.model.priceVsTimeChart.soldSeries}"/>
</hc:TimeChart>
....
</html>
上記のすべての行の下に赤いエラー行が表示され、「名前空間http://nz.co.kevindoran/highcharts-jsfのライブラリが見つかりません」というメッセージが表示されます。
これらのエラー行を削除するにはどうすればよいですか? 同様の問題に関する多くの Netbeans バグ レポートを見てきましたが、すべて解決済みのようです。
このエラーは、Netbeans 7.1、7.2、および 7.3 (7.3.1 を含む) で発生します。