Olá, no final do método main da classe CadastroDeProduto não foram colocados os comandos: em.getTransaction().commit(); em.close();
esses comandos são obrigatórios já que o primeiro comando após instanciar o objeto EntityManager, foi executado o em.getTransaction().begin() ?