tag personalizada 'não pode ser resolvida para um tipo'
Pergunta
Eu tenho uma tag personalizada, embalada em um frasco de biblioteca incluído no meu arquivo de guerra de aplicativos da web.
Estou tendo o erro a seguir:
An error occurred at line: 66 in the jsp file: /WEB-INF/jsp/portlet/portfolio/operations/operationsInfo.jsp
org.apache.jsp.tag.meta.form.WidgetFactory_tag cannot be resolved to a type
63: <c:forEach var="fldCfg" items="${config.page.fields}" >
64: <tr>
65: <td><form:Label fld="${fldCfg}"/></td>
66: <td><form:WidgetFactory fld="${fldCfg}" decodesMap="${decodesMap}" command="${operationsInfoBean}" dateFormat="${preferredDateFormat}"/></td>
67: </tr>
68: </c:forEach>
69: </table>
Mas parece não reclamar do rótulo que está no mesmo taglib. Confirmei que o frasco está na guerra e que o arquivo de tag está no frasco e no que o TLD (no meta-inf) define expressamente 'widgetfactory'
Por que estou recebendo esse erro?
Tld snippit:
<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>1.2</jsp-version>
<short-name>Form</short-name>
<uri>http://web.foo.com/tags/form</uri>
<description>Tags that encapsulate the Aladdin form elements, both basic and widgets</description>
<tag-file>
<description>Factory to select the correct widget type</description>
<name>WidgetFactory</name>
<path>/META-INF/tags/form/WidgetFactory.tag</path>
</tag-file>
...
Solução
Acontece que eu omiti a importação de outra biblioteca de tags sendo usada pela minha tag, para que não compilasse.
Outras dicas
Verifique se o nome da classe que você tem no seu arquivo .tld está correto. Possivelmente há um erro de digitação no nome do pacote em algum lugar, ou talvez a classe tenha um mau package
cabeçalho.