2012-06-07 3 views
0

Я пытаюсь создать веб-приложение JSF 2.0, которое использует библиотеки, включая EJB и FacesConverters/ManagedBeans.Как Injection a FacesConverter или управляемый компонент из файла lib/jar?

Моя война файл выглядит следующим образом:

-WEB-INF/ 
|-beans.xml 
|-lib/ 
| |-myejb.jar 
| |-myconverter.jar 

обе фляги файлы содержат также файл beans.xml помещается в папку META-INF. Странно, что EJB работают хорошо. Но мой конвертер, включенный в файл myconverter.jar, не отображается в моем веб-приложении. Я получил следующее сообщение:

javax.faces.FacesException: Ausdrucksfehler: Benanntes Objekt org.imixs.VectorConverter nicht gefunden.

Когда я помещаю класс конвертера непосредственно в классы из своего веб-модуля, он работает.

Класс конвертер выглядит следующим образом:

... 
@FacesConverter(value="org.imixs.VectorConverter") 
public class VectorConverter implements Converter { 

Я не я использую не лица-config.xml

преобразователь добавлен в мой файл XHMTL так:

<h:inputTextarea required="false" 
    value="#{teamController.members}"> 
    <f:converter converterId="org.imixs.VectorConverter" /> 
</h:inputTextarea> 

Так мой вопрос: почему конвертер не видно, когда он помещен в модуль jar?

Я бегу приложение на GlassFish 3.1.1

спасибо за любую помощь

ответ

4

ли myconverter.jar также содержать /META-INF/faces-config.xml? Я думаю, что это необходимо, чтобы ваш контейнер также просматривал аннотации JSF в файле JAR. Пустой faces-config.xml как должно быть должно:

<?xml version='1.0' encoding='UTF-8'?> 
<faces-config xmlns="http://java.sun.com/xml/ns/javaee" version="2.0"> 

</faces-config> 
+0

Да! как раз в тот момент, когда я проверил это - он работает :-) – Ralph