我似乎無法追查這個錯誤。當過濾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;
}
如何解決這個問題?