Eu estou usando um pc com windows e criei a pasta C:\casadocodigo\livros na maquina, mas ao salvar um livro o arquivo esta sendo colocado no caminho c:\casadocodigo e não na subpasta livros.
adminLivroBean
@Named
@RequestScoped
public class AdminLivrosBean {
    private Livro livro = new Livro();
    private List<Integer> autoresId = new ArrayList<>();
    private Part capaLivro;
    @Inject
    LivroDao livroDao;
    @Inject
    AutorDao autorDao;
    @Inject
    private FacesContext context;
    @Transactional
    public String salvar() throws IOException{
        for (Integer autorId : autoresId) {
            this.livro.getAutores().add(new Autor(autorId));
        }
        livroDao.salvar(this.livro);
        String path = "/casadocodigo/livros" + capaLivro.getSubmittedFileName();
        capaLivro.write(path);
        livro.setCapaPath(path);
        context.getExternalContext().getFlash().setKeepMessages(true);
        context.addMessage(null, new FacesMessage("Livro adicionado com sucesso! " + this.livro.getTitulo()));
        return "/livros/lista?faces-redirect=true";
    }Livro
@Entity
public class Livro {
    @Id @GeneratedValue(strategy=GenerationType.IDENTITY)
    private Integer id;
    @NotBlank
    private String titulo;
    @Lob
    @NotBlank
    @Length(min=20, max=300)
    private String descricao;
    @Min(50)
    private Integer numeroPaginas;
    @DecimalMin("20")
    private BigDecimal preco;    
    @ManyToMany
    @NotNull
    @Size(min=1)
    private List<Autor> autores = new ArrayList<>();
    @Temporal(TemporalType.DATE)
    private Calendar dataPublicacao = Calendar.getInstance();
    private String capaPath; 
            