我似乎无法追查这个错误。当过滤PrimeFaces时,JSF java.lang.ClassNotFoundException org.jboss.msc.service.ServiceName Datatable
抛出java.lang.ClassNotFoundException:org.jboss.msc.service.ServiceName从[模块 “deployment.OpsSkills.war:主” 从服务模块加载]
它一个Maven基于JSF应用使用Eclipse创建。该应用程序在我的机器上运行良好,但未部署到DEV服务器。当我尝试在PrimeFaces数据表上使用FilterBy参数或使用分页按钮时,会引发异常。该表在DEV中显示正常,但是当我在列标题的过滤器框中键入一个字符时,会抛出异常。
真的很烦人的是,我有其他类似的应用程序在Prime服务器上运行,Primefaces Datatable过滤器很好。所以我试着将一个正在运行的eclipse项目复制到一个新的文件夹中,只是将源代码放入陷入困境的应用程序的源代码中。我试过这个,因为当我最初创建新的应用程序时,我使用maven生成样板文件,不幸的是它使用了更新的版本,例如webmodule,jsf,jpa等。我们的DEV服务器正在运行(并且我不能升级到WildFly):
Server info: JBoss Web/7.0.13.Final
Servlet version: 3.0
Java version: 1.6.0_40
所以我想利用现有的,已知能够正常工作的web.xml,beans.xml中,面临-配置,等...仍然抛出异常。
然后,我把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;
}
如何解决这个问题?