2013-10-05 75 views
2

我需要爲沒有經驗的Java開發人員的團隊設計一個大學項目的CMS系統。我研究了不同的選項(特別是Apache Jackrabbit和JCR),但我不確定要使用什麼。我們必須爲DMS開發Web界面,可以上傳文檔並向其中添加自定義屬性集(屬性對於所有文檔都是相同的)。我不確定我的團隊是否能夠與Jackrabbit合作。Java CMS項目

正在使用數據庫以Base64編碼方式存儲文檔選項?

我打算使用JSF,JPA,休眠,EJB和JBoss AS,

系統必須能夠:

  • 免費產品或第三方庫等,這是很容易使用來自缺乏經驗的開發者;
  • 存儲文件;
  • 支持版本;
  • 支持歸檔(低優先級);
  • 支持一組屬性,即documentDescription:「some txt goes here」。
+1

看你的需求,這聽起來像你可以只使用一個Java驅動程序的CouchDB的除了UI什麼。 – Prinzhorn

+0

我簡要介紹了一下CouchDB的文檔,但似乎我無法保存與.pdf文檔一起使用JSON對象和屬性的內容。也許我沒有制定正確的問題......我想保存文檔的實際內容以及屬性。我可以將內容編碼/解碼爲Base64並以此方式進行存儲,但是這是一個很好的解決方案 – Ivo

+0

再次查看文檔,它完全**您想要的內容:http://wiki.apache.org/couchdb/HTTP_Document_API#附件每個CouchDB文檔(用於存儲文檔屬性)都可以具有附件(BLOB,例如PDF文件)。 – Prinzhorn

回答

2

從我的經驗來看,JCR本身太低級,不適合缺乏經驗的開發團隊使用。您可以使用jcrom進行對象映射,但我不能說它很容易或無懈可擊。

Martin Fowler寫道,CMS是面向文檔的NoSQL數據庫的應用程序之一。您可以嘗試使用MongoDB與Morphia進行對象映射。我發現它非常易於使用和部署(從我的經驗開始,從MongoDB開始比從JCR開始更容易)。儘管jcrom和Morphia的文檔都遠遠不夠完美,但我發現Morphia使用起來更容易。

用於存儲文件,您可以使用使用GridFS

但要小心,如果您使用MongoDB而不是JCR,則不會有事務和版本控制。如果你不交易,你會嘗試使用MongoDB,你將不得不自己實現一些交易,這可能不是很容易。

P.S.我不確定您是否可以使用JPA/Hibernate for JCR。從我的研究中,我發現JCR只有兩種對象映射實現:jcrom和Apache Jackrabbit(JCR實現)的一些OM實現。

+0

不幸的是我不能使用NOSQL數據庫,因爲負責我們將部署項目的大學環境的管理員不想使用NOSQL db(他們甚至不想安裝postgres),我還以爲JSON會混淆它們。所以我選擇了jcr/jackrabbit並開發了一個PoC網絡應用程序,學生可以從中看到JCR和jackrabbit的基本使用。希望從這個角度來看,球隊可以接受。 – Ivo

1

Hippo可能是一個滿足您的需求的項目。它是開源的。通過企業訂閱,您將能夠滿足您的存檔要求。

一個用Hippo構建的大學網站的例子是University of Amsterdam的網站。

1

如果您只需要CMS,您可以嘗試CUBA Platform。 我認爲這是Intranet或CMS項目非常酷的平臺。

該框架基於Vaadin和Spring技術。 順便說一句,它是開源的!

此外,你可以看到演示CMS for Public Library