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