2009-12-08 90 views
1

我的問題是生成版本1的UUID。我們使用Jetty 6.x,Maven(以啓動Jetty等)和Apache Commons ID(從當前時間生成UUID版本1)。Apache Commons Id UUID第1代問題

Apache Commons ID需要一個配置文件,該配置文件通過參數(例如,參數)告訴JVM。 'org.apache.commons.id.uuid.config.resource.filename =公地-ID-uuid.xml'。我檢查了Apache Commons ID代碼,它試圖從類路徑中找到該文件。 Jetty的documentation指出WEB-INF/lib和WEB-INF /類位於類路徑中。在「公地-ID-uuid.xml」可以從WEB-INF/classes目錄,但根在部署war文件中找到碼頭無法加載:

Message: java.lang.RuntimeException: 
java.lang.IllegalStateException: commons-id-uuid.xml loaded as system resource is null 

碼頭使用以下命令啓動:

mvn jetty:run -Dorg.apache.commons.id.uuid.config.resource.filename=commons-id-uuid.xml 

任何想法是什麼問題?我們只需要生成UUID版本1標識符。有什麼建議麼?

+0

爲什麼不使用JDK UUID(http://java.sun.com/javase/6/docs/api/java/util/UUID.html)? – 2009-12-08 08:12:54

+2

我們只需要從當前時間輕鬆生成UUID。 JDK UUID類的構造函數佔用最高有效位和最低有效位。這是相當低的水平。此外,還有randomUUID(http://java.sun.com/javase/6/docs/api/java/util/UUID.html#randomUUID%28%29),它返回類型4的UUID,我們需要類型1的UUID 。 – 2009-12-08 10:54:06

回答

4

至少有2個更好的UUID代庫比Apache的百科全書之一:

不需要XML配置文件。也許考慮其中之一呢?

+0

感謝您的信息!其實我們並沒有解決問題,因爲我們將數據庫更改爲另一個。然而,這是我們未來需要解決這個特殊問題的事情。感謝您的提示! – 2010-04-05 13:54:24

+3

僅供參考:JUG現在位於http://wiki.fasterxml.com/JugHome,並利用現代JDK6功能(與上述URL託管的過時實現形成鮮明對比) – 2010-12-19 18:39:32