>
> "No child node definition for grade.png found in node /bar"


I see.  Well, the folder you created via webdav must be a "nt:folder" node
type?  In that case, the type of the child must extend "nt:hierarchyNode"
to conform with the "nt:folder" node type definition.

In the example I provided in my last reply,  the child node is created
using the JcrConstants.NT_FILE node type which would satisfy that condition
since "nt:file" extends the "nt:hierarchyNode" node type.

Hope that helps.

Regards,
-Eric

On Thu, Aug 26, 2021 at 2:17 PM Brian E. Lavender <br...@brie.com> wrote:

> I clarified the root node and made a new variable to hold the node for
> the bar folder.
>
> ```java
> // bar is a folder created through the webdav interface.
> Node root,folder;
> root = session.getRootNode();
> folder = root.getNode("bar");
>
> // fails here
> Node child = folder.addNode("grade.png");
> ```
>
> Error message is the following
>
> "No child node definition for grade.png found in node /bar"
>
> On Thu, Aug 26, 2021 at 02:03:27PM -0700, Eric Norman wrote:
> > Maybe this a typo?  It looks like your sample code added the child to the
> > root node, not under "/bar" where you were doing the lookup.
> >
> > Node child = *root*.addNode("grade.png");
> >
> >
> > On Thu, Aug 26, 2021 at 1:47 PM Brian E. Lavender <br...@brie.com>
> wrote:
> >
> > > I still can not seem to add a file.
> > >
> > > I went through the webdav interface and I created a 'folder' called
> bar.
> > > Then, I tried to programmatically add a file to that folder. I am
> > > getting nothing.
> > >
> > > ```java
> > > // get the path for where to add the file.
> > > // We want to put it in the `bar` folder
> > > Node root;
> > > root = session.getRootNode();
> > > root = root.getNode("bar");
> > >
> > >
> > > System.out.print("Adding binary ");
> > > Calendar rightNow = Calendar.getInstance();
> > > // Add a node for the file
> > > // It fails here
> > > Node child = root.addNode("grade.png");
> > >
> > > // Set the property for the node.
> > > child.setProperty(JcrConstants.JCR_DATA,
> > >         root.getSession().getValueFactory().createBinary(new
> > > FileInputStream("grade.png")));
> > > child.setProperty(JcrConstants.JCR_MIMETYPE, "image/png");
> > > child.setProperty(JcrConstants.JCR_LASTMODIFIED, rightNow);
> > >
> > > session.save();
> > > ```
> > >
> > > ```
> > > javax.jcr.nodetype.ConstraintViolationException: No child node
> > > definition for grade.png found in node /bar
> > > <snip>
> > > at
> > >
> org.apache.jackrabbit.rmi.server.ServerObject.getRepositoryException(ServerObject.java:109)
> > > at
> org.apache.jackrabbit.rmi.client.ClientNode.addNode(ClientNode.java:95)
> > > at gov.ca.brea.jackrabbit.FifthHop.main(FifthHop.java:74)
> > >
> > >
> > >
> > > On Thu, Aug 26, 2021 at 01:04:35AM +0200, Jakub Kaniewski wrote:
> > > > For this you use ValueFactory
> > > >
> > > > Example
> > > >
> > >
> node.setProperty(JcrConstants.JCR_DATA,node.getSession().getValueFactory().createBinary
> > > <
> > >
> https://www.tabnine.com/code/java/methods/javax.jcr.ValueFactory/createBinary
> >(new
> > > FileInputStream(“/tmp/test.jpg)));
> > > >
> > > >
> > > > —
> > > > Jakub Kaniewski | 666 831 500 | jakub.kaniew...@gmail.com
> > > >
> > > >
> > > >
> > > >
> > > > > On 26 Aug 2021, at 00:59, Brian E. Lavender <br...@brie.com>
> wrote:
> > > > >
> > > > > How is it I add a binary to a Node?
> > > > >
> > > > > I see the following method.
> > > > > Property setProperty(java.lang.String name, Binary value)
> > > > >
> > > > > I see that Binary is an interface, yet I am not sure how to create
> a
> > > > > Binary from a File that I open.
> > > > >
> > > > > Or, stated another way, say I want to add a jpg image from my disk
> to
> > > > > a node. Would I use this setProperty method? How would I do it?
> > > > >
> > > > > Brian
> > > > > --
> > > > > Brian Lavender
> > > > > http://www.brie.com/brian/
> > > > >
> > > > > "There are two ways of constructing a software design. One way is
> to
> > > > > make it so simple that there are obviously no deficiencies. And the
> > > other
> > > > > way is to make it so complicated that there are no obvious
> > > deficiencies."
> > > > >
> > > > > Professor C. A. R. Hoare
> > > > > The 1980 Turing award lecture
> > > >
> > >
> > > --
> > > Brian Lavender
> > > http://www.brie.com/brian/
> > >
> > > "There are two ways of constructing a software design. One way is to
> > > make it so simple that there are obviously no deficiencies. And the
> other
> > > way is to make it so complicated that there are no obvious
> deficiencies."
> > >
> > > Professor C. A. R. Hoare
> > > The 1980 Turing award lecture
> > >
>
> --
> Brian Lavender
> http://www.brie.com/brian/
>
> "There are two ways of constructing a software design. One way is to
> make it so simple that there are obviously no deficiencies. And the other
> way is to make it so complicated that there are no obvious deficiencies."
>
> Professor C. A. R. Hoare
> The 1980 Turing award lecture
>

Reply via email to