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
>

Reply via email to