Hi Charly,
that was a perfect hint! Now everything works perfectly.

For anyone who wants to build a server with a webdav-enabled Root-Folder (i.e. 
http://localhost:8080 )
here is a small cooking recipe:
Normally the jackrabbit-webdav servlet can be reached at 
http://localhost:8080/jackrabbit-webapp/repository/default/ 
We have to remove three parts from that URL.
1) "jackrabbit-webapp"
To remove "jackrabbit-webapp" from the URL rename "jackrabbit-webapp.war" to 
"ROOT.war". This will cause the Servlet-Container to start the URL of all 
servlets in "ROOT.war" at "/".
Be sure that not other ROOT.war is in the Servlet-Container. In JBoss 4.x.x the 
ROOT.war resides in server/deploy/jboss-web.deployer 

2) "repository"
To remove "repository" from the URL open the web.xml in the ROOT.war (aka 
jackrabbit-webapp.war) and replace all "/repository" with "/" 

3) "default" 
To remove "repository" from the URL build the following class and put it in the 
classpath of your servlet-container:

package my.package;
import javax.jcr.Repository;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.ServletException;

import org.apache.jackrabbit.j2ee.SimpleWebdavServlet;
import org.apache.jackrabbit.webdav.simple.LocatorFactoryImpl;

public class MyWebdavServlet extends SimpleWebdavServlet {
        private static final long serialVersionUID = 1L;

        @Override
        public void init() throws ServletException {
                super.init();
                try {
                        final InitialContext ctx = new InitialContext();
                        final Repository repository = (Repository) 
ctx.lookup("java:jcr/local");
                        setRepository(repository);
                } catch (NamingException e) {
                        e.printStackTrace();
                }

                // Use LocatorFactoryImpl instead of LocatorFactoryImplEx:
                // paths don't include workspace so no "/default" at start.
                setLocatorFactory(new LocatorFactoryImpl(getPathPrefix()));
        }
}

After that open the web.xml in the ROOT.war (aka jackrabbit-webapp.war) and 
replace "org.apache.jackrabbit.j2ee.SimpleWebdavServlet" with your 
servlet-class (here it would be my.package.MyWebdavServlet)

That's it
 
Yours
 Arne

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to