jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Niu, Xuetao" <Xuetao....@fiserv.com>
Subject RE: "Bad Request" exception using DavEx
Date Thu, 18 Mar 2010 12:36:09 GMT
Hi Angela,

Thanks for your help. What I was trying to do, functionally, is to 
1) make "/" versionable, 
2) register namespace for "rtde:" if not registered yet for each
session, 
3) remove "/rtde:root" if exists
4) save session
5) create "/rtde:root" 
6) save session (this gives exception)

To answer your questions:

- I create every node as "nt:unstructured".
- Each node is not set as referenceable.
- I just deployed the standalone WAR of jackrabbit2.0.0 into tomcat6,
without specific configuration for the DavEx repo, except for the
repository.xml file attached. 
- I am not aware of how to do any security settings, so probably they
are default. Do I set it in the repository.xml ? If so, I have <param
name="anonymousId" value="anonymous"/>
- A simple log file is attached, the only ERROR is: JsonDiffHandler:
Node locked. (JsonDiffHandler.java, line 575), and I did delete the
.lock file and the "workspaces" folder before starting Tomcat.

Thanks again!
Xuetao

-----Original Message-----
From: Angela Schreiber [mailto:anchela@day.com] 
Sent: Thursday, March 18, 2010 12:19 PM
To: users@jackrabbit.apache.org
Subject: Re: "Bad Request" exception using DavEx

hi

not sure if properly understood what your problem is.
from your description i created a simple test-case as follows
and run it on my jackrabbit trunk (jcr2dav -> conformancetest)...
that worked...

public void testSimple() throws Exception {
         Session s = getHelper().getRepository().login(new 
SimpleCredentials("", new char[0]), null);
         try {
             Node n = s.getRootNode();
             n.addMixin("mix:lockable");
             s.save();

             n.addNode("test");
             s.save();
         } finally {
             s.logout();
         }

         Session ss = getHelper().getReadOnlySession();
         try {
             assertTrue(ss.nodeExists("/test"));
         } finally {
             ss.logout();
         }
     }

do you use specific node types to create your nodes?
are your nodes referenceable? (there were bugs with ref.
nodes that i fixed just recently)...

how is the server side config of your davex repo? specially
the security config... do you use the trivial configuration
that allow any non-anonymous user to write?

did you check the log files? any entry that would allow to
get some more information?

regards
angela



Niu, Xuetao wrote:
> Hi Angela,
> 
> - The getRootNode() returns "/" of the default workspace
> - The getRtdeRootNode() returns "/rtde:root" of the default workspace
> - The addNode(root, RTDE_ROOT_NAME) adds "rtde:root" under the "/"
node
> of the default workspace.
> 
> To get a node from the default workspace, I used this:
> Session.getNode(path)
> 
> To acquire a session, I used this: return
>
JcrUtils.getRepository("http://localhost:8080/jackrabbit-webapp-2.0.0/se
> rver").login(new SimpleCredentials("", new char[0]), null);
> 
> Let me know if you need more info.
> 
> Many Thanks!
> 
> Xuetao
> 
> 
> hi xuetao
> 
> and what exactly does getRtdeRootNode(s) and getRootNode(s)
> and addNode(root, RTDE_ROOT_NAME)?
> 
> please try to narrow down the problem so we can see what
> you are doing... otherwise it's not possible to help you.
> at least not for me.
> 
> thanks
> angela
> 
>> To explain what I did, I just called one method below and the 2nd
>> "save()" gives the exception I pasted beneath:
>>
>>  
>>
>>       public static synchronized void
> createRepositoryStructure(Session
>> s, boolean removeExisting) {
>>
>>  
>>
>>             try {
>>
>>                   getRootNode(s).addMixin(MIXIN_LOCKABLE);
>>
>>                   s.save();
>>
>>             } catch (RepositoryException e) {
>>
>>                   throw e;
>>
>>             }
>>
>>  
>>
>>             try {
>>
>>                   Node node = getRtdeRootNode(s);
>>
>>                   if (node != null) {
>>
>>                         if (removeExisting) {
>>
>>                               node.remove();
>>
>>                               s.save();
>>
>>                         } else {
>>
>>                               return;
>>
>>                         }
>>
>>                   }
>>
>>                   Node root = getRootNode(s);
>>
>>                   Node rtdeRoot = addNode(root, RTDE_ROOT_NAME);
>>
>>                   addNode(rtdeRoot, TENANTS_ROOT_NAME);
>>
>>  
>>
>>                   // the following save action produced the exception
>>
>>  
>>
>>                   s.save();
>>
>>  
>>
>>             } catch (RepositoryException e) {
>>
>>                   throw new e;
>>
>>             }
>>
>>  
>>
>>       }
>>
>>  
>>
>>  
>>
>> I am using DavEx to remotely connecting to a repository at
>> http://localhost:8080/jackrabbit-webapp-2.0.0/server which works in
> web
>> browser but not with JCR API
>>
>>  
>>
>> When I call Session.save(), I got the "Bad Request" exception, but if
> I
>> use a local repository impl, like TransientRepository, everything
> works
>> fine. Could you guys help me out?
>>
>>  
>>
>> Caused by: javax.jcr.RepositoryException: Bad Request
>>
>>                 at
>>
>
org.apache.jackrabbit.spi2dav.ExceptionConverter.generate(ExceptionConve
>> rter.java:113)
>>
>>                 at
>>
>
org.apache.jackrabbit.spi2dav.ExceptionConverter.generate(ExceptionConve
>> rter.java:49)
>>
>>                 at
>>
>
org.apache.jackrabbit.spi2davex.RepositoryServiceImpl$BatchImpl.start(Re
>> positoryServiceImpl.java:457)
>>
>>                 at
>>
>
org.apache.jackrabbit.spi2davex.RepositoryServiceImpl$BatchImpl.access$2
>> 00(RepositoryServiceImpl.java:399)
>>
>>                 at
>>
>
org.apache.jackrabbit.spi2davex.RepositoryServiceImpl.submit(RepositoryS
>> erviceImpl.java:304)
>>
>>                 at
>>
>
org.apache.jackrabbit.jcr2spi.WorkspaceManager$OperationVisitorImpl.exec
>> ute(WorkspaceManager.java:830)
>>
>>                 at
>>
>
org.apache.jackrabbit.jcr2spi.WorkspaceManager$OperationVisitorImpl.acce
>> ss$500(WorkspaceManager.java:797)
>>
>>                 at
>>
>
org.apache.jackrabbit.jcr2spi.WorkspaceManager.execute(WorkspaceManager.
>> java:594)
>>
>>                 at
>>
>
org.apache.jackrabbit.jcr2spi.state.SessionItemStateManager.save(Session
>> ItemStateManager.java:139)
>>
>>                 at
>> org.apache.jackrabbit.jcr2spi.ItemImpl.save(ItemImpl.java:246)
>>
>>                 at
>> org.apache.jackrabbit.jcr2spi.SessionImpl.save(SessionImpl.java:328)
>>
>>                 at
>>
>
com.fiserv.repository.jcr.JCRUtils.createRepositoryStructure(JCRUtils.ja
>> va:196)
>>
>>                 ... 51 more
>>
>> Caused by: org.apache.jackrabbit.webdav.DavException: Bad Request
>>
>>                 at
>>
>
org.apache.jackrabbit.webdav.client.methods.DavMethodBase.getResponseExc
>> eption(DavMethodBase.java:172)
>>
>>                 at
>>
>
org.apache.jackrabbit.webdav.client.methods.DavMethodBase.checkSuccess(D
>> avMethodBase.java:181)
>>
>>                 at
>>
>
org.apache.jackrabbit.spi2davex.RepositoryServiceImpl$BatchImpl.start(Re
>> positoryServiceImpl.java:453)
>>
>>                 ... 60 more
>>
>>  
>>
>> Thanks in advance!
>>
>> Xuetao
>>
>>  
>>
>>
> 
> 


Mime
View raw message