jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jarosław Marek <jaroslaw.ma...@gmail.com>
Subject Re: Unable to access repository using WebDAV from java.
Date Wed, 16 Apr 2014 09:27:03 GMT
Hi Gaurag,
Make sure you have jackrabbit-jcr2dav on your classpath in your java
client application.
You need to have Jcr2davRepositoryFactory on your classpath in order
to be able to connect to the repository through WebDAV using java
application and it is included in the mentioned jar.

Regards,
Jarek

On Tue, Apr 15, 2014 at 8:15 PM, Pathare, Gaurang (GE Global Research)
<pathare@ge.com> wrote:
> Hi,
>
> I've deployed jackrabbit-webapp-2.6.5.war in tomcat and I'm able to access http://localhost:8082/jackrabbit-webapp-2.6.5/server
from browser.
>
> But when I try to access repository from java test code
> public class Test {
>
>        @SuppressWarnings("nls")
>        public static void main(String[] args) {
>
>              Repository repository;
>              Session session = null;
>              try {
>                     repository = JcrUtils
>                                  .getRepository("http://localhost:8082/jackrabbit-webapp-2.6.5/server");
>
>                     session = repository.login(new SimpleCredentials("admin", "admin"
>                                  .toCharArray()));
>
>                     Node node = session.getRootNode();
>
>                     System.out.println("name" + node.getName() + " path "
>                                  + node.getPath());
>
>              } catch (Exception e) {
>                     // TODO Auto-generated catch block
>                     e.printStackTrace();
>              } finally {
>                     if (session != null) {
>                            session.logout();
>                     }
>
>              }
>        }
> }
>
> It fails with following error.
> .
> javax.jcr.RepositoryException: Unable to access a repository with the following settings:
>     org.apache.jackrabbit.repository.uri: http://localhost:8082/jackrabbit-webapp-2.6.5/server
> The following RepositoryFactory classes were consulted:
>     org.apache.jackrabbit.core.RepositoryFactoryImpl: declined
>     org.apache.jackrabbit.commons.JndiRepositoryFactory: declined
>     org.apache.jackrabbit.rmi.repository.RmiRepositoryFactory: failed
>         because of RemoteRuntimeException: java.rmi.RemoteException: Failed to read the
resource at URL http://localhost:8082/jackrabbit-webapp-2.6.5/server; nested exception is:
>                java.io.IOException: Server returned HTTP response code: 401 for URL:
http://localhost:8082/jackrabbit-webapp-2.6.5/server
>         because of RemoteException: Failed to read the resource at URL http://localhost:8082/jackrabbit-webapp-2.6.5/server;
nested exception is:
>                java.io.IOException: Server returned HTTP response code: 401 for URL:
http://localhost:8082/jackrabbit-webapp-2.6.5/server
>         because of IOException: Server returned HTTP response code: 401 for URL: http://localhost:8082/jackrabbit-webapp-2.6.5/server
>     org.apache.jackrabbit.jcr2spi.Jcr2spiRepositoryFactory: declined
> Perhaps the repository you are trying to access is not available at the moment.
>                at org.apache.jackrabbit.commons.JcrUtils.getRepository(JcrUtils.java:219)
>                at org.apache.jackrabbit.commons.JcrUtils.getRepository(JcrUtils.java:259)
>                at jackrabbit.Test.main(Test.java:33)
>
>
>
> I've made following changes to Web.xml :
>
> <servlet>
>         <servlet-name>Repository</servlet-name>
>         <description>
>             This servlet provides other servlets and jsps a common way to access
>             the repository. The repository can be accessed via JNDI, RMI or Webdav.
>         </description>
>         <servlet-class>org.apache.jackrabbit.j2ee.RepositoryAccessServlet</servlet-class>
>
>         <init-param>
>             <param-name>bootstrap-config</param-name>
>             <param-value>/WEB-INF/repository/bootstrap.properties</param-value>
>
>
>
> And bootstrap.properties file looks as follows:
>
> # Repository configuration settings (will be adjusted by installer)
> repository.config=/WEB-INF/repository/repository.xml
> repository.home=../analyticCatalog
> repository.name=analyticCatalog.repository
>
> # RMI Settings
> rmi.enabled=true
> rmi.port=1234
> rmi.host=localhost
> # If the URI is not specified, it's composed as follows:
> #rmi.uri=//${rmi.host}:${rmi.port}/${repository.name}
>
> # JNDI Settings
> # all properties starting with 'java.naming.' will go into the
> # environment of the initial context
> jndi.enabled=true
> # if the name is not specified, it's initialized with the repository.name
> #jndi.name=${repository.name}
> java.naming.provider.url=http://www.apache.org/jackrabbit
> java.naming.factory.initial=org.apache.jackrabbit.core.jndi.provider.DummyInitialContextFactory
>
>
>
> security module in Reposiotry.xml:
>
> <Security appName="Jackrabbit">
>         <SecurityManager class="org.apache.jackrabbit.core.DefaultSecurityManager"
workspaceName="security">
>         </SecurityManager>
>         <AccessManager class="org.apache.jackrabbit.core.security.DefaultAccessManager">
>         </AccessManager>
>
>         <LoginModule class="org.apache.jackrabbit.core.security.authentication.DefaultLoginModule">
>            <param name="anonymousId" value="anonymous"/>
>            <param name="adminId" value="admin"/>
>         </LoginModule>
>     </Security>
>
>
> My questions are :
>
>
> 1.      Am I missing anything here ?
>
> 2.      Documentation says webDav should be enabled by default do I need to explicitly
enable webdav somewhere just like we have rmi.enabled flag in bootstrap.properties ?
>
> 3.      Since it is a 401 error do I need to make any changes to login module ? or pass
loging credentials when I call getRepository() ?
>
> Kindly let me know if you need any more details.
> Thanks in advance.
>
> Regards,
> Gaurang
>

Mime
View raw message