2013-06-25 74 views
3

我正在嘗試使用SVNKit獲取Coldfusion中SVN條目的日誌。我下載了最新的SVNKit jar文件,並將它們扔到WEB-INF/lib下的lib文件夾中。Coldfusion和SVNKit日誌

這是我的代碼應該返回一個日誌條目數組,但是這段代碼在Coldfusion 9.0.2中返回一個空指針異常。

SVNURL = createObject('java','org.tmatesoft.svn.core.SVNURL').parseURIEncoded(svnurl); 
drf = createObject("java","org.tmatesoft.svn.core.internal.io.dav.DAVRepositoryFactory"); 
drf.setup(); 

rf = drf.create(SVNURL); 
SVNWCUtil = createObject("java","org.tmatesoft.svn.core.wc.SVNWCUtil"); 
authManager = SVNWCUtil.createDefaultAuthenticationManager(user,pass); 

rf.setAuthenticationManager(authManager); 

log = rf.log(JavaCast("String[]",[]),JavaCast("null",""),JavaCast("long",10),JavaCast("long",15),true,true); 

rf.closeSession(); 

當運行此代碼時,我收到以下錯誤。

系統試圖在代碼或某些系統代碼中使用未定義的值,該值通常表示編程錯誤。 空指針是未定義值的另一個名稱。

指向此行..

log = rf.log(JavaCast("String[]",[]),JavaCast("null",""),JavaCast("long",10),JavaCast("long",15),true,true); 

我搬到這個相同的代碼交給Railo,一切運行良好。我只是不明白爲什麼ACF在log()方法上窒息。

我在SVNKit Wiki上使用Printing Out Repository History示例來啓動我。

任何建議讓它在Adobe Coldfusion工作將不勝感激。我沒有在CF10上測試。

+0

可能是JVM問題。根據CF9.0.2的運行情況檢查SVNKit JVM要求。 – imthepitts

+0

我還沒有找到它列出了SVNKit JVM要求的地方,但我已經換出了JRE CF正在使用並仍然出現錯誤。 – abbottmw

+1

如果轉儲'rf',它是否顯示您正嘗試使用的方法簽名? – imthepitts

回答

1

我對log()函數中最後兩個參數沒有使用JavaCast(「boolean」,true)。之後,一切正常。

記得檢查並使用JavaCast()!

log = rf.log(JavaCast("String[]",[]),JavaCast("null",""),JavaCast("long",10),JavaCast("long",15),JavaCast("boolean",true),JavaCast("boolean",true));