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 <[email protected]> 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 | [email protected]
> > >
> > >
> > >
> > >
> > > > On 26 Aug 2021, at 00:59, Brian E. Lavender <[email protected]> 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