0

我尝试构建一个 JSF 2.0 Web 应用程序,它使用包括 EJB 和 FacesConverters/ManagedBeans 在内的库。

我的战争文件如下所示:

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

这两个 jar 文件还包含一个 beans.xml 文件,该文件放置在 META-INF 文件夹中。奇怪的是,EJB 运行良好。但是从我的 Web 应用程序中看不到 myconverter.jar 文件中包含的转换器。我收到以下消息:

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

当我将转换器类直接放入我的网络模块中的类时,它就可以工作了。

转换器类如下所示:

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

我没有使用 faces-config.xml

转换器添加到我的 xhmtl 文件中,如下所示:

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

所以我的问题是:为什么将转换器放入jar模块时看不到?

我在 GlassFish 3.1.1 上运行该应用程序

谢谢你的帮助

4

1 回答 1

4

是否myconverter.jar还包含一个/META-INF/faces-config.xml?我认为这是必需的,因此您的容器还会扫描 JAR 文件中的 JSF 注释。像这样的空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>
于 2012-06-07T08:26:03.337 回答