Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Não é possível conectar ao MySQL - Glassfish e Hibernate


Olhando para a seguinte linha no stacktrace

você pode adivinhar qual pode ser o problema. O primeiro problema é o problema do driver de banco de dados, eu acho. 1527 é o número da porta padrão do banco de dados derby que é enviado com o servidor de aplicativos Glassfish.

Como você não forneceu nenhuma fonte de dados em sua configuração, o servidor está tentando encontrar o banco de dados padrão que é o derby neste caso; mas você não pode se conectar a esse banco de dados, pois não forneceu nenhuma informação de conexão para este banco de dados.

Então você tem que fazer o seguinte no seu META-INF/persistence.xml :

  • Forneça o transaction-type (em sua configuração, assume-se que seja JTA porque você está implantando seu aplicativo no ambiente JEE por especificação) como
    <persistence-unit name="unit" transaction-type="JTA">
    

  • Forneça o jta-data-source elemento como filho de persistence-unit
    <persistence-unit name="unit" transaction-type="JTA">
        ...
        <jta-data-source>your_data_source_name</jta-data-source>
        ...
    </persistence-unit>
    

Para que a configuração acima funcione, você precisa configurar seu servidor de aplicativos (Glassfish) primeiro. Para fazer isso, você precisa baixar o driver jdbc do MySQL, descompactá-lo e copiar o arquivo jar em <glassfish_installation_directory>/glassfish/domains/domain1/lib (Estou assumindo aqui Glassfish 3.1). A razão para isso é que o Glassfish não é fornecido com o driver MySQL, então você deve fazer isso sozinho.

Depois disso, inicie o Glassfish e abra o console de administração (http://localhost:4848 ). No painel esquerdo aberto
  1. Resources/JDBC/JDBC Connection Pools e crie um novo pool de conexões
  2. Resources/JDBC/JDBC Resources e crie uma nova fonte de dados. O nome que você dá à sua fonte de dados é aquele que você precisa em seu persistence.xml como mencionado acima.