【问题标题】:JSF java.lang.ClassNotFoundException org.jboss.msc.service.ServiceName when filtering PrimeFaces Datatable过滤 PrimeFaces 数据表时的 JSF java.lang.ClassNotFoundException org.jboss.msc.service.ServiceName
【发布时间】:2016-09-14 19:02:26
【问题描述】:

我似乎无法找到这个错误。

java.lang.ClassNotFoundException: org.jboss.msc.service.ServiceName from [Module "deployment.OpsSkills.war:main" from Service Module Loader]

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

真正令人讨厌的是,我在这个 DEV 服务器上运行了其他类似的应用程序,Primefaces Datatable 过滤器很好。因此,我尝试将一个正常工作的 eclipse 项目复制到一个新文件夹中,只将源代码放入有问题的应用程序的源代码中。我尝试了这个,因为当我最初创建新应用程序时,我使用 maven 来生成样板文件,不幸的是,它使用的是 webmodule、jsf、jpa 等新版本。我们的 DEV 服务器正在运行(不,我无法升级到野蝇):

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 的 FilterView 演示文件放入它们在 DEV 中工作。不同之处在于它不使用 db 后备表,而我的是。这个新应用程序与我的 PF DT 工作的应用程序之一的不同之处在于,新应用程序 db 表位于不同的 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;
}

如何解决这个错误?

【问题讨论】:

    标签: jsf jakarta-ee primefaces


    【解决方案1】:

    好的,所以在我的 web.xml 中我有

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-25
      • 2014-03-01
      • 1970-01-01
      • 2014-01-04
      • 1970-01-01
      • 2015-01-21
      • 2012-11-22
      相关资源
      最近更新 更多