所有内容似乎都已设置并正常工作,但是,当它到达我的while循环时,我会收到一个错误,以迭代Authorizable.memberOf()方法返回的迭代器。当它到达Next()方法时,它返回一个错误,声明"方法Next()未定义类型Iterator"。不知道此时该怎么做。任何帮助,将不胜感激。有问题的具体代码部分如下。
while(paths.hasNext()) {
Node node = paths.nextNode();
String UID = node.getProperty("jcr:uuid").getString();
String usrName = node.getProperty("rep:principalName").getString();
Authorizable usr = usrMgr.getAuthorizable(UID);
Iterator<Group> itrGrp = usr.memberOf();
String grpList = "";
while(itrGrp.hasNext()) {
Group grp = itrGrp.Next();
Value[] grpVal = grp.getProperty("rep:principalName");
String[] grpArr = Arrays.copyOf(grpVal, grpVal.length, String[].class);
int arrLen = grpArr.Length;
If (arrLen > 1) {
for(int i=0; i<arrLen; i++){
grpList = grpList + grpArr[i] + "<br/>";
}
}else{
grpList = grpList + grpArr[0];
}
}
out.println("<tr><td>" + usrName + "</td><td>" +grpList + "</td></tr>");
}
此外,以下是我所有导入的界面,以防它适用:
java.util.Iterator,
javax.jcr.query.Query,
javax.jcr.NodeIterator,
javax.jcr.Node,
javax.jcr.PropertyIterator,
javax.jcr.Property,
javax.jcr.Value,
javax.jcr.SimpleCredentials,
javax.jcr.RepositoryFactory,
javax.jcr.Repository,
javax.jcr.Session,
org.apache.jackrabbit.api.JackrabbitSession,
org.apache.jackrabbit.api.security.user.UserManager,
org.apache.jackrabbit.api.security.user.Authorizable,
org.apache.jackrabbit.api.security.user.Group
如果有什么不合理或者我没有提供足够的信息,请告诉我。任何帮助将不胜感激。
感谢。
答案 0 :(得分:0)
您应该使用方法next()
代替Next()
(请注意小写'n')
答案 1 :(得分:0)
对于在早期的混乱中寻找答案的任何其他新手来说,只是一个头脑,我发布的代码还有一些其他问题与我询问的问题无关(使用Next()而不是next())。我现在已经纠正了所有其他问题,下面列出了代码。我做出的其他错误的子弹点列表:
我几乎可以肯定这不是最好的方法,但不知道在接口之间传递属性的正确语法。我绝对会感谢任何能够发布正确方法的人:)
while(paths.hasNext()) {
Node node = paths.nextNode();
String usrPath = node.getPath();
Authorizable usr = usrMgr.getAuthorizableByPath(usrPath);
String usrName = node.getProperty("rep:principalName").getString();
Iterator<Group> itrGrp = usr.memberOf();
String grpList = "";
if (itrGrp.hasNext()){
while(itrGrp.hasNext()) {
Group grp = itrGrp.next();
String grpPath = grp.getPath();
grpList = grpList + grpPath + "</br>";
}
}
out.println("<tr><td>" + usrName + "</td><td>" +grpList + "</td></tr>");
}