3

我正在尝试使用 SVNKit 来获取 Coldfusion 中 SVN 条目的日志。我下载了最新的 SVNKit jar 文件并将它们扔到 WEB-INF/lib 下的 lib 文件夹中。

这是我的代码,它应该返回一个日志条目数组,但此代码在 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 上的打印存储库历史示例来启动我。

任何关于让它在 Adob​​e Coldfusion 中工作的建议将不胜感激。我没有在CF10上测试。

4

1 回答 1

1

我没有使用 JavaCast("boolean",true) 作为 log() 函数中的最后两个参数。之后,一切正常。

一定要记得检查和使用 JavaCast()!

log = rf.log(JavaCast("String[]",[]),JavaCast("null",""),JavaCast("long",10),JavaCast("long",15),JavaCast("boolean",true),JavaCast("boolean",true));
于 2013-06-25T19:49:47.110 回答