如何在Java中设置jackrabbit存储库的连接超时

如何在Java中设置jackrabbit存储库的连接超时,java,connection,timeout,repository,jackrabbit,Java,Connection,Timeout,Repository,Jackrabbit,我需要浏览一个JackRabbit存储库。我正在使用以下代码进行连接: Repository repository = JcrUtils.getRepository(url); SimpleCredentials credentials = new SimpleCredentials(user, password.toCharArray()); session = repository.login(credentials, workspace); 但是,如果由于某种原因某些参数不正确,我的we

我需要浏览一个
JackRabbit
存储库。我正在使用以下代码进行连接:

Repository repository = JcrUtils.getRepository(url);
SimpleCredentials credentials = new SimpleCredentials(user, password.toCharArray());
session = repository.login(credentials, workspace);
但是,如果由于某种原因某些参数不正确,我的webapp将被卡住。我需要做的是设置一个超时连接(比如30秒),但在jcr API中找不到任何方法。
关于如何做到这一点,有什么建议或代码示例吗


PS:我使用的jackrabbit版本是2.2.10。

因此我使用
FutureTask

我创建了一个实现
Callable
接口的类,并在
call()
方法中设置了连接逻辑:

public class CallableSession implements Callable<Session> {

private final String url;
private final String user;
private final String password;
private final String workspace;

public CallableSession(String url, String user, String password, String workspace) {
    this.url = url;
    this.user = user;
    this.password = password;
    this.workspace = workspace;
}

@Override
public Session call() throws Exception {

    Repository repository = JcrUtils.getRepository(url);
    SimpleCredentials credentials = new SimpleCredentials(user, password.toCharArray());
    Session session = repository.login(credentials, workspace);

    return session;
}

因此,我设法使用
FutureTask
添加了一个连接超时
我创建了一个实现
Callable
接口的类,并在
call()
方法中设置了连接逻辑:

public class CallableSession implements Callable<Session> {

private final String url;
private final String user;
private final String password;
private final String workspace;

public CallableSession(String url, String user, String password, String workspace) {
    this.url = url;
    this.user = user;
    this.password = password;
    this.workspace = workspace;
}

@Override
public Session call() throws Exception {

    Repository repository = JcrUtils.getRepository(url);
    SimpleCredentials credentials = new SimpleCredentials(user, password.toCharArray());
    Session session = repository.login(credentials, workspace);

    return session;
}