> > "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 >