Arquivo da categoria: Programação

javax.net.ssl.SSLHandshakeException

Caso já tenha passado por esse erro no java é simples de resolver:

Failed to send out e-mail
 
javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 465;
  nested exception is:
	javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path validation failed: java.security.cert.CertPathValidatorException: timestamp check failed
	at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1934)
	at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:638)
	at javax.mail.Service.connect(Service.java:317)
	at javax.mail.Service.connect(Service.java:176)
        ...

Na maioria das vezes esse problema acontece quando a data do seu Sistema Operacional está muito adiantada, ai quando o Java vai validar os seus certificados ocasiona esse erro.
Então para ser resolvido basta ajeitar o calendário.

Como pegar a conexão usando JPA ou Hibernate

Eu passei por um problema que era usar a mesma conexão que eu usava no projeto para usar no meu relatório com o ireports.
Para resolver esse problema usei esse código.

public class ReportsRepository {
 
    private EntityManager entityManager;
 
    public ReportsRepository(EntityManager entityManager) {
        this.entityManager = entityManager;
    }
 
    public Connection getConnection() {
        try {
            EntityManagerImpl factory = (EntityManagerImpl) entityManager;
            SessionFactoryImpl sessionFactoryImpl = (SessionFactoryImpl) factory.getSession().getSessionFactory();
            return sessionFactoryImpl.getConnectionProvider().getConnection();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }
}