Caused by: java.sql.SQLException: Error in allocating a connection. Cause: Connection could not be allocated because: java.net.ConnectException : Erro ao conectar no servidor ‘localhost’ porta ‘1527’. Recebida a mensagem: ‘Conexão recusada’.
Alguem sabe o que causa essa excepttion de EJB?
14 Respostas
Verifique se a máquina está correta, tal como porta, usuário, senha esses dados…
verifique se o firewall nao esta barrando a porta
abrasss
andredecotia, se é essa for a configuração acho que esta certa,
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0">
<persistence-unit name="quina" transaction-type="JTA">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>br.com.dominio.Sorteios</class>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
<property name="javax.persistence.jdbc.user" value="quina"/>
<property name="javax.persistence.jdbc.password" value="quina"/>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/quina"/>
</properties>
</persistence-unit>
Sobre firewall nem sei no linux onde configura isso nem sei se tem firewall no ubuntu.
Você está usando Windows, né? Caso sim, por favor faça o seguinte teste e veja o que retorna:
No DOS
telnet localhost 1527
Não, meu ambiente é linux. E acho que portas acima 1999 para baixo são reservadas do sistema operacional, só não sei onde mudar.
A porta 1527 é do derby.
A tua aplicação usa MySql na porta 3306…
Ah, mas… o que eu faço ? Desculpe minha falta de conhecimento pmlm, mas vc não me disse nada, continuo sem saber o que fazer !!!
O que está a dar erro parece ser outra coisa que não a tua aplicação. Ou pelo menos outra coisa que não a definida nesse xml.
é estou achando que dever ser algum xml de config do glassfish mas estou pesquisando…
como está a classe que injeta um EntityManager?
A classe esta assim
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import br.com.dominio.Sorteios;
@Stateless
public class RepositorioSorteios implements RepositorioSorteiosInterface<Sorteios> {
@PersistenceContext
private EntityManager em;
public void adicionar(Sorteios obj) {
em.persist(obj);
}
public void remover(Sorteios obj) {
em.remove(em.merge(obj));
}
public void alterar(Sorteios obj){
em.merge(obj);
}
public Sorteios buscarPorId(int id){
Sorteios obj = em.find(Sorteios.class, id);
return obj;
}
@SuppressWarnings("unchecked")
public List<Sorteios> buscarTodos(){
Query query = em.createQuery("SELECT o FROM Sorteios o");
return query.getResultList();
}
}
Vc já fez uma classe com um método main pra tentar conectar nesse banco?
e se fizer assim:
@PersistenceContext(unitName="quina")
dá alguma diferença?
Ok. Problema RESOLVIDO. Basta seguir esse tutorial: http://www.albeesonline.com/blog/2008/08/06/creating-and-configuring-a-mysql-datasource-in-glassfish-application-server/
O problema era que eu não configurei o datasource