过滤PrimeFaces数据表时的JSF java.lang.ClassNotFoundException org.jboss.msc.service.ServiceName

时间:2016-09-14 19:02:27

标签: jsf java-ee primefaces

我似乎无法追查此错误。

  

java.lang.ClassNotFoundException:org.jboss.msc.service.ServiceName来自[Module" deployment.OpsSkills.war:main"来自服务模块加载器]

它是一个使用Eclipse创建的基于Maven的JSF应用程序。应用程序在我的机器上运行正常,但未部署到DEV服务器。当我尝试在PrimeFaces数据表上使用FilterBy参数或使用分页按钮时抛出异常。该表在DEV中显示正常,但是当我在列标题的过滤器框中键入一个字符时,抛出异常。

真正烦人的是我在这个DEV服务器上运行其他类似的应用程序,其中Primefaces Datatable过滤器很好。所以我尝试将一个正在运行的eclipse项目复制到一个新的文件夹中,只是把那个源代码放到了陷入困境的应用程序的源代码中。我试过这个,因为当我最初创建新的应用程序时,我使用maven来生成样板文件,不幸的是它使用了更新的版本,比如webmodule,jsf,jpa等。我们的DEV服务器正在运行(而且我不能' t升级到WildFly):

Server info: JBoss Web/7.0.13.Final
Servlet version: 3.0
Java version: 1.6.0_40

所以我想使用现有的,已知的工作web.xml,beans.xml,faces-config等...仍然抛出异常。
   然后我从PF Showcase和THEY WORK IN DEV中放入FilterView演示文件。区别在于它没有使用数据库支持表,而我的是。对于PF DT工作的我的应用程序,这个新应用程序的另一个不同之处在于新的应用程序数据库表位于不同的Oracle数据源上,如果这很重要(已解散的应用程序部署并且初始数据表显示数据,因此我不会这样做。看到相关性。

以下是一些相关代码:

 <h:form>
 <p:dataTable id="certTable" var="cert" value="#{certificationView.list}" emptyMessage="No records found" paginator="true" paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}" rowsPerPageTemplate="25,50,100" rows="50" filteredValue="#{certification.filteredList}">

      <p:column headerText="Title" sortBy="#{cert.certTitle}" filterBy="#{cert.certTitle}" filterMatchMode="contains"
       <h:outputText value="#{cert.certTitle}" />
      </p:column>


@ManagedBean
@ViewScoped
public class CertificationView implements Serializable {
private static final long serialVersionUID = 1L;

@Inject
private CertificationRepository dao;

private List<Certification> list;
private List<Certification> filteredList;

@PostConstruct
public void init() {
    list = dao.retrieveAll();
}


@Stateless
@LocalBean
public class CertificationEBRepository extends DataAccessService<CertificationEB, String> {

@Inject
@MyDatabase
private EntityManager em;

public List<Certification> retrieveAll() {
    Query query = em.createQuery("My Query");
    List<Certification> result = query.getResultList();
    return result;
}

如何解决此错误?

1 个答案:

答案 0 :(得分:0)

好的,我的web.xml中有

    <context-param>
   <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
   <param-value>client</param-value>
    </context-param>

不确定为什么这会导致PF数据库崩溃?

但是一旦我删除它,PF数据表过滤器和分页工作。