Glassfish – Nenhum driver adequado para o mysql ao tentar se conectar com a fonte de dados

Estou tentando concluir este tutorial:

https://netbeans.org/kb/docs/javaee/ecommerce/connect-db.html

Parte disso é configurar um database e tentar estabelecer uma conexão usando a fonte de dados e o pool de conexões.

Eu fiz tudo o que está no tutorial, mas quando eu tento executar o meu código eu recebo o seguinte erro:

javax.servlet.jsp.JspException: Não é possível obter conexão, DataSource inválido: “java.sql.SQLException: Nenhum driver adequado foi encontrado para jdbc / affablebean”

Aqui está o código que joga:

 SELECT * FROM category, product WHERE category.id = product.category_id  

Tentei me conectar ao database sem usar o pool de conexões e a fonte de dados, e funcionou como um encanto.

 try { Class.forName("com.mysql.jdbc.Driver"); System.out.println("Driver registered"); } catch (ClassNotFoundException ex) { Logger.getLogger(SqlService.class.getName()).log(Level.SEVERE, null, ex); } 

Isso significa que o driver está na pasta lib correta no diretório glassfish, portanto o problema deve estar em outro lugar.

O tutorial tem uma seção de solução de problemas onde eles descrevem que se eu receber esse tipo de erro “Nenhum driver adequado encontrado para jdbc / affablebean” significa que eu não tenho referência de recurso no meu web.xml. Bem … eu tenho um e aqui está:

  Connects to database for AffableBean application jdbc/affablebean javax.sql.DataSource Container Shareable  

Eu tenho tentado resolver esse problema 16 horas por dia por mais de dois dias, mas ainda sem sorte.

Vocês tem alguma ideia do que está errado? Eu naveguei todo o google e stackoverflow e encontrei problemas semelhantes, mas a solução que eles dão é “Verifique se o driver mysql está na pasta certa no servidor”.

Por que eu me conecto ao database sem o object dataSource, mas não consigo me conectar a um?

Então eu encontrei a solução para o mesmo problema que eu estava tendo. Portanto, parece que o problema estava dentro do web.xml, não contendo uma referência à fonte de dados. Simplesmente adicione

  AffableBean DataSource jdbc/affablebean javax.sql.ConnectionPoolDataSource Container  

para o seu arquivo web.xml e salve e execute o arquivo (clique com o botão direito dentro do arquivo e pressione “Executar arquivo”).

Depois, você verá a aba do database no navegador de sua escolha.

Eu tive o mesmo erro

o problema está ligado quando você define o tipo de recurso:

Tipo de Recurso: javax.sql.ConnectionPoolDataSource

tente usar:

Tipo de Recurso: = javax.sql.DataSource

Isso é estranho no texto do tutorial é (o problema):

Clique em Next. Na Etapa 5, Incluir Propriedades do Conjunto de Conexões, especifique os seguintes detalhes: Datasource Nome da Classe: com.mysql.jdbc.jdbc2.optional.MysqlDataSource Tipo de Recurso: javax.sql.ConnectionPoolDataSource Descrição: (Opcional) Conecta-se ao database affablebean

mas na captura de canvas está correta.

Eu tive vários problemas com esta https://netbeans.org/kb/docs/javaee/ecommerce/connect-db.html parte do tutorial de comércio eletrônico.

Primeiro problema (sem driver adequado fourd) apareceu devido à criação de resources jdbc imprópria – eu usei ‘novo arquivo \ pool de conexão \ glassfish \ jdbc’ em vez de ‘novo arquivo \ glassfish \ jdbc resource’.

Refazer esta etapa registrou o driver corretamente e criou o pool (foi indicado no glassfish servel log que o driver mysql fez o registro na instância do servidor).

Depois disso, não consegui obter dados via testDataSource.jsp – o erro foi org.apache.derby.client.am.SqlException: Table / View ‘CATEGORY’ não existe.

Eu não conseguia descobrir por que o org.apache.derby.client era sequer mencionado e depois de alguma pesquisa ter encontrado discussões no fórum do netbeans: https://forums.netbeans.org/ntopic61746.html

Esta parte da discussão foi a solução para o meu caso:

tente alterar no arquivo de configuração da etapa sun-resources.xml ou glassfish-resources.xml Configurando uma origem de dados JDBC e um pool de conexão na etapa 6 -> alterar o Tipo de Recurso para javax.sql.ConnectionPoolDataSource

e altere o arquivo de configuração da etapa web.xml Fazendo referência à origem de dados a partir do aplicativo na etapa 4 -> Alterar Tipo de Recurso para javax.sql.ConnectionPoolDataSource

ps eu estou usando o netbeans 8.0.2, glassfish 4.1 e jdk1.7.0_21. Não havia a opção javax.sql.ConnectionPoolDataSource na interface do Netbeans para o combobox ‘editar referência de recurso \ tipo de recurso’ para web.xml. Então eu coloquei esse valor lá manualmente.

Depois de uma pesquisa muito cansativa, tendo verificado servidores tomcat, wildfly e Jboss, nenhum parecia funcionar, eu tive problema com o registro de nova fonte de dados com glassfish, adicionando nova connectionbox jdbc lançaria java.lang.runtimeexception, a solução para este problema era reconfigure o DerbyPool sob jdbcconnection pools no console administrativo e alimente-o com o Nome de Classe da Origem de Dados, url, nome de usuário e senha necessários para apontar o database no servidor mysql.e ele funcionou.

Eu acho que você não adicionou o Mysql JDBC Driver em suas bibliotecas de projetos.

Adicione manualmente o Mysql JDBC Driver em suas bibliotecas de projeto e tente novamente.

Eu acho que vai funcionar.

Eu tenho exatamente o problema, e mesmo através do NetBeans IDE, o teste de conexão do database é bom, enquanto no Glassfish 4, ele não está funcionando, tente todos os possíveis, como include lib no projeto, colocar aqui e ali. Finalmente o problema é corrigido por remover Glassfish e instalar o Glassfish 3.1.2.2, os arquivos do projeto é exatamente o mesmo e funcionando bem. Acho que isso é um bug ou specail configuração pode ser necessária no Glassfish 4.

Eu tive o mesmo problema. As últimas 4 horas eu estava procurando uma solução e foi tão fácil para mim …

Certifique-se de que o “Status” no Recurso JDBC (no Console de administração do Glassfish) esteja Ativado (a checkbox de seleção está marcada) 🙁

Mesmo problema aqui. Passei horas com isso, tentei algumas das soluções oferecidas aqui, e apenas uma me deu um passo adiante: alterando o tipo de recurso de “javax.sql.ConnectionPoolDataSource” para “javax.sql.DataSource. Eu imediatamente deparei com o próximo problema : a tabela “categoria” não existia. Ela realmente existe. Eu desisti do glassfish (essa foi a primeira vez que tentei usar glassfish) e voltei para o Tomcat. Succes! Então eu decidi que seria útil apontar pessoas para outra solução possível que funcionou para mim. Para aqueles que estão interessados ​​na solução Tomcat, visite esta página http://tomcat.apache.org/tomcat-8.0-doc/jndi-datasource-examples-howto.html#MySQL_DBCP_Example . Explicação muito clara com um exemplo E não se esqueça de adicionar a biblioteca JSTL ao seu projeto Boa sorte.