Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven 在主项目中未找到子项目中的转换器类_Maven_Jsf 2_Converter - Fatal编程技术网

Maven 在主项目中未找到子项目中的转换器类

Maven 在主项目中未找到子项目中的转换器类,maven,jsf-2,converter,Maven,Jsf 2,Converter,我正在做一个大项目,包括10个子项目 我们使用Eclipse进行开发,JBoss7作为应用程序。服务器。我们的项目使用JSF2.1、Spring3.2、Hibernate4.2和PrimeFaces3.3实现JSF 有两个“核心”项目是其他项目引用的,这些项目是从其他8个项目中引用的,一个项目——比如说项目A-(共8个)引用了另一个项目——比如说项目B- 现在问题是,;项目A使用“核心”项目的实体,项目B包括JSF转换器 当我尝试在SelectOne菜单中使用实体时,我得到“Converter”

我正在做一个大项目,包括10个子项目

我们使用Eclipse进行开发,JBoss7作为应用程序。服务器。我们的项目使用JSF2.1、Spring3.2、Hibernate4.2和PrimeFaces3.3实现JSF

有两个“核心”项目是其他项目引用的,这些项目是从其他8个项目中引用的,一个项目——比如说项目A-(共8个)引用了另一个项目——比如说项目B-

现在问题是,;项目A使用“核心”项目的实体,项目B包括JSF转换器

当我尝试在SelectOne菜单中使用实体时,我得到“Converter”not found错误。(注意:转换器正在工作!)

我将转换器定义添加到项目B的faces-config.xml中,但仍然得到相同的错误

如何使用其他项目的转换器

谢谢


下面是“getAsObject”方法:

答案取决于构建系统。您使用的是标准Eclipse还是Maven?BalusC;谢谢你的询价。我们使用Maven.My“getAsObject”以:return getSessionController().findByRID(“Akademikbirim”,value)结尾;这可能是重点,你同意吗?(这两个项目都包括sessionController,但项目B仅作为war包含,所以没有初始化控制器,对吗?)如果JSF找不到整个类,那么源代码是不相关的。不幸的是,我不做Maven,所以我不能从头开始详细回答。但说到这里,你需要确保Maven生成的项目结构最终是这样的,我已经编写了一个小代码,它可以找到并复制项目a中所需的转换器,但位于项目B中。我认为这是问题的明确解决方案,但现在,转换器中出现了一种奇怪的行为。您可以看到上面“getAsObject”方法的最后一行;该方法访问“sessionController”,但当我调用类“sessionController”的公共方法时,它失败。Primefaces扩展称“服务器返回异常类java.lang.NoSuchMethodError”,尽管这样的方法确实存在!
@Override
    public Object getAsObject(FacesContext facesContext,
            UIComponent uIComponent, String value) {
        if (value == null || value.trim().equalsIgnoreCase("")) {
            return null;
        }
        return ManagedBeanLocator.locateSessionController().findByRID("Akademikbirim", value);
    }