You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jackrabbit.apache.org by qcfireball <qc...@yahoo.com> on 2007/10/31 18:08:07 UTC

JCR WebDAV Question

Has anyone successfully used the WebDAV client for authoring new content
within the JCR?
  > creating new properties on a node and populating them with plain text
  > creating new binary nodes containing arbitrary documents:  word, pdf,
bmp, gif, jpeg, etc....
  > allowing multiple people collaborate on the creation and editing of this
content

I suspect a new custom WebDAV  servlet is required, but I am hoping the ones
that come with Jackrabbit already provide this.

 I have tried, with little success, of making this work as though the WebDAV
"folder" is a regular filesystem.  The repository side node and property
types are not the types that I would have expected.  Again, I suspect
because that is the way the servlets are setup.
-- 
View this message in context: http://www.nabble.com/JCR-WebDAV-Question-tf4726480.html#a13514099
Sent from the Jackrabbit - Users mailing list archive at Nabble.com.


Re: JCR WebDAV Question

Posted by Angela Schreiber <an...@day.com>.
ok. let me summarize your problem:

- you are using the jcr-server
- you want to renaming existing resources (i.e. Move)
- the move fails.
- you have an error in the log file indicating illegalargumentexception.

> Does anyone have any ideas as to what is going on?  

yes.
the exception is thrown in the locator factory of the jcr-server.
namely upon retrieving the path of the repository item from
the move-destination.

what the factory expects as argument is is a resource path starting
with /workspace-name/jcr:root and it assumes
that the path of the repository item (that it tries to retrieve) is
everything behind that.
obviously this is not the case in your test.

can you please send a an extract of the http conversation
that shows the MOVE operation?
that would help me to decide whether there is a bug in the
code (what was the nature of it).
thanks

> Has anyone else had a similar problem?

no. not yet.

regards
angela



Re: JCR WebDAV Question

Posted by qcfireball <qc...@yahoo.com>.
I can copy new files into a WebDAV folder, and I can create a new file within
the WebDAV folder, but as soon as I try to change the filename, I get an
error that looks like a permissions error.  This is inconsistent with the
first part of my statement, I can in fact, modify the existing file, and can
paste new files into the WebDAV folder.

The error that I see in the Jackrabbit log is as follows, and I checked all
of the other logfiles and there is no further information about what
happened:


01.11.2007 13:23:42 *ERROR* [JCRWebdavServer]: Servlet.service() for servlet
JCRWebdavServer threw exception (SLF4JLocationAwareLog.java, line 174)
java.lang.IllegalArgumentException: Unexpected format of resource path.
at
org.apache.jackrabbit.webdav.jcr.DavLocatorFactoryImpl.getRepositoryPath(DavLocatorFactoryImpl.java:64)
at
org.apache.jackrabbit.webdav.AbstractLocatorFactory$DavResourceLocatorImpl.getRepositoryPath(AbstractLocatorFactory.java:356)
at
org.apache.jackrabbit.webdav.jcr.DavResourceFactoryImpl.getItem(DavResourceFactoryImpl.java:206)
at
org.apache.jackrabbit.webdav.jcr.DavResourceFactoryImpl.createResourceForItem(DavResourceFactoryImpl.java:188)
at
org.apache.jackrabbit.webdav.jcr.DavResourceFactoryImpl.createResource(DavResourceFactoryImpl.java:99)
at
org.apache.jackrabbit.server.AbstractWebdavServlet.doMove(AbstractWebdavServlet.java:601)
at
org.apache.jackrabbit.server.AbstractWebdavServlet.execute(AbstractWebdavServlet.java:250)
at
org.apache.jackrabbit.server.AbstractWebdavServlet.service(AbstractWebdavServlet.java:193)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at
org.jstripe.tomcat.probe.Tomcat55AgentValve.invoke(Tomcat55AgentValve.java:20)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:619)


Does anyone have any ideas as to what is going on?  Has anyone else had a
similar problem?

I have tried both the DriveOnWeb and Novell:NetDrive WebDAV clients, both
with the same results.  The WindowsXP WebDAV client works so poorly, that it
may as well not work at all.
-- 
View this message in context: http://www.nabble.com/JCR-WebDAV-Question-tf4726480.html#a13534476
Sent from the Jackrabbit - Users mailing list archive at Nabble.com.


Re: JCR WebDAV Question

Posted by qcfireball <qc...@yahoo.com>.
When connecting from WindowsXP, I am allowed to create new nodes, but not new
properties.  However, when connecting from Ubuntu Linux, I am allowed to
create both, but new properties appear as binary properties.

I created a new String property with JCR Controller (by J. v. Weert) and it
does not appear to either WebDAV client (XP or Linux).



Jozef Wagner wrote:
> 
> Hi,
> 
> With Bitkinex webdav client, I was able to view nodes through both
> Filebased and Item JCR-Server views.
> 
> I was also able to create folders and files (nt:file nodes, both
> binary and text) through Filebased view. I haven't tried to add/modify
> something in Item view.
> 
> I was able to lock a node in Filebased View, but unlock didn't work
> (maybe a bug in Bitkinex) and I could not modify that node further. I
> was able to remove that node in Item view though.
> 
> Best,
> Jozef Wagner
> 
> On 10/31/07, qcfireball <qc...@yahoo.com> wrote:
>>
>> Has anyone successfully used the WebDAV client for authoring new content
>> within the JCR?
>>   > creating new properties on a node and populating them with plain text
>>   > creating new binary nodes containing arbitrary documents:  word, pdf,
>> bmp, gif, jpeg, etc....
>>   > allowing multiple people collaborate on the creation and editing of
>> this
>> content
>>
>> I suspect a new custom WebDAV  servlet is required, but I am hoping the
>> ones
>> that come with Jackrabbit already provide this.
>>
>>  I have tried, with little success, of making this work as though the
>> WebDAV
>> "folder" is a regular filesystem.  The repository side node and property
>> types are not the types that I would have expected.  Again, I suspect
>> because that is the way the servlets are setup.
>> --
>> View this message in context:
>> http://www.nabble.com/JCR-WebDAV-Question-tf4726480.html#a13514099
>> Sent from the Jackrabbit - Users mailing list archive at Nabble.com.
>>
>>
> 
> 

-- 
View this message in context: http://www.nabble.com/JCR-WebDAV-Question-tf4726480.html#a13515295
Sent from the Jackrabbit - Users mailing list archive at Nabble.com.


Re: JCR WebDAV Question

Posted by Jozef Wagner <jo...@gmail.com>.
Hi,

With Bitkinex webdav client, I was able to view nodes through both
Filebased and Item JCR-Server views.

I was also able to create folders and files (nt:file nodes, both
binary and text) through Filebased view. I haven't tried to add/modify
something in Item view.

I was able to lock a node in Filebased View, but unlock didn't work
(maybe a bug in Bitkinex) and I could not modify that node further. I
was able to remove that node in Item view though.

Best,
Jozef Wagner

On 10/31/07, qcfireball <qc...@yahoo.com> wrote:
>
> Has anyone successfully used the WebDAV client for authoring new content
> within the JCR?
>   > creating new properties on a node and populating them with plain text
>   > creating new binary nodes containing arbitrary documents:  word, pdf,
> bmp, gif, jpeg, etc....
>   > allowing multiple people collaborate on the creation and editing of this
> content
>
> I suspect a new custom WebDAV  servlet is required, but I am hoping the ones
> that come with Jackrabbit already provide this.
>
>  I have tried, with little success, of making this work as though the WebDAV
> "folder" is a regular filesystem.  The repository side node and property
> types are not the types that I would have expected.  Again, I suspect
> because that is the way the servlets are setup.
> --
> View this message in context: http://www.nabble.com/JCR-WebDAV-Question-tf4726480.html#a13514099
> Sent from the Jackrabbit - Users mailing list archive at Nabble.com.
>
>

Re: JCR WebDAV Question

Posted by Angela Schreiber <an...@day.com>.
qcfireball wrote:
> Has anyone successfully used the WebDAV client for authoring new content
> within the JCR?

"the WebDAV client"? which client are you talking about?
and which servlet are you refering too?

>   > creating new properties on a node and populating them with plain text
>   > creating new binary nodes containing arbitrary documents:  word, pdf,
> bmp, gif, jpeg, etc....
>   > allowing multiple people collaborate on the creation and editing of this
> content

the 'simple' dav servlet behaves pretty much as defined by
rfc 2518 including PROPPATCH and LOCK/UNLOCK. however, with this
servlet you cannot operate on nodes and properties directly.
instead it's the set of IO- and PropertyHandlers (see config)
that is in charge of creating/modifying/removing jcr nodes
and properties and exposing them to the webDAV layer.

in contrast the 'jcr-server-servlet' is designed to be used
for remoting jcr api calls via http. the protocoll (i.e. matching
jcr and webdav) is defined in the document
http://jackrabbit.apache.org/JCR_Webdav_Protocol.doc

the protocol is not defined to perfectly match the expectations
of existing webdav clients...

and to answer you questions:

i successfully used both servlets.
- the simple for 'standard' (filebased) webdav
- the jcr-server within the spi2dav contribution (see sandbox/spi)

angela




> I suspect a new custom WebDAV  servlet is required, but I am hoping the ones
> that come with Jackrabbit already provide this.
> 
>  I have tried, with little success, of making this work as though the WebDAV
> "folder" is a regular filesystem.  The repository side node and property
> types are not the types that I would have expected.  Again, I suspect
> because that is the way the servlets are setup.