<\/p>\n
Ol\u00e1 amigos. Um problema muito comum na programa\u00e7\u00e3o Java \u00e9 o fato de adicionarmos os dados de conex\u00e3o com o bando de dados diretamente em nosso c\u00f3digo. Quando precisamos enviar a aplicar para outro servidor como homologa\u00e7\u00e3o ou produ\u00e7\u00e3o precisamos mudar o c\u00f3digo. Ent\u00e3o para isso temos uma solu\u00e7\u00e3o pr\u00e1tica que \u00e9 criar um datasource no servidor de aplica\u00e7\u00e3o. Hoje utilizaremos o Apache tomcat 8.
\n J\u00e1 tratamos de outros servidores como GlassFish, JBoss e Wildfly. Veja os links no final deste artigo.
\n Vamos ao que importa: Meu datasource no Tomcat! M\u00e3os \u00e0 obra!<\/p>\n
\nEtapas a seguir:<\/p>\n
\r\n \r\n<\/pre>\n\r\n*Aten\u00e7\u00e3o: Se voc\u00ea estiver fazendo este exemplo no eclipse.\r\nAltere o arquivo \"contex.xml\" localizado na aba \"ProjectExplorer\".\r\nVeja a imagem:\r\n\r\n\r\n<\/pre>\n Em seguida adicione o c\u00f3digo abaixo ao arquivo web.xml<\/b> da sua aplica\u00e7\u00e3o. Esses dados fazem a liga\u00e7\u00e3o da sua aplica\u00e7\u00e3o com o datasource criado no servidor.<\/p>\n\r\n\r\n\t\tjdbc\/DSAcademicNet<\/res-ref-name>\r\n\t\tjavax.sql.DataSource<\/res-type>\r\n\t\tContainer<\/res-auth>\r\n <\/resource-ref>\r\n<\/pre>\n Pronto o seu servidor j\u00e1 est\u00e1 pronto para conectar ao banco de dados.<\/p>\n
Cria\u00e7\u00e3o da aplica\u00e7\u00e3o que utilizar\u00e1 o nosso datasource<\/H2><\/p>\n
Nossa aplica\u00e7\u00e3o ter\u00e1 uma p\u00e1gina inicial (index.jsp) de apresenta\u00e7\u00e3o, um servlet (DataSourceServlet) que acessar\u00e1 o banco de dados e por fim teremos uma p\u00e1gina (resultado.jsp) que exibir\u00e1 os dados consultados e uma mensagem!<\/p>\n
P\u00e1gina principal do Sistema (index.jsp).<\/p>\n
\r\n\r\n\r\n\r\nDatasource Tomcat 8<\/title>\r\n<\/head>\r\n \r\n\tEste exemplo cria um Datasource no Tomcat 8.\r\n\t
\r\n\tChamar o Servlet<\/a>\r\n\t
Fonte:\r\n\t\r\n\t\tMais detalhes!<\/a>\r\n<\/body>\r\n<\/html>\r\n<\/pre>\nP\u00e1gina de sucesso que exibir\u00e1 o resultado da consulta (resultado.jsp).<\/p>\n
\r\n\r\n\r\n\r\nDatasource Tomcat 8<\/title>\r\n<\/head>\r\n \r\nMensagem: ${mensagem}
\r\n${lista}\t\r\n<\/body>\r\n<\/html>\r\n<\/pre>\n Este \u00e9 o ponto mais importante do nosso exemplo. O servlet que far\u00e1 a chamada ao Data Source e consultar\u00e1 a lista de alunos no banco de dados (DataSourceServlet).<\/p>\n
\r\npackage br.com.feltex.bancodados;\r\n\r\nimport java.io.IOException;\r\nimport java.sql.Connection;\r\nimport java.sql.PreparedStatement;\r\nimport java.sql.ResultSet;\r\nimport java.util.ArrayList;\r\nimport java.util.List;\r\n\r\nimport javax.naming.Context;\r\nimport javax.naming.InitialContext;\r\nimport javax.servlet.RequestDispatcher;\r\nimport javax.servlet.ServletException;\r\nimport javax.servlet.annotation.WebServlet;\r\nimport javax.servlet.http.HttpServlet;\r\nimport javax.servlet.http.HttpServletRequest;\r\nimport javax.servlet.http.HttpServletResponse;\r\nimport javax.sql.DataSource;\r\n\r\n\/**\r\n * Servlet implementation class DataSourceServlet\r\n *\/\r\n@WebServlet(\"\/DataSourceServlet\")\r\npublic class DataSourceServlet extends HttpServlet {\r\n\tprivate static final long serialVersionUID = 1L;\r\n\r\n\tpublic DataSourceServlet() {\r\n\t\tsuper();\r\n\t}\r\n\r\n\t\/**\r\n\t * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse\r\n\t * response)\r\n\t *\/\r\n\tprotected void doGet(HttpServletRequest request,\r\n\t\t\tHttpServletResponse response) throws ServletException, IOException {\r\n\t\tdoPost(request, response);\r\n\t}\r\n\r\n\t\/**\r\n\t * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse\r\n\t * response)\r\n\t *\/\r\n\tprotected void doPost(HttpServletRequest request,\r\n\t\t\tHttpServletResponse response) throws ServletException, IOException {\r\n\t\tSystem.out.println(\"Inicio ConexaoMySQL\");\r\n\r\n\t\tList listaNomes = new ArrayList();\r\n\t\tString mensagem = \"\";\r\n\r\n\t\ttry {\r\n\t\t\tContext ctx = new InitialContext();\r\n\t\t\tDataSource ds = (DataSource) ctx\r\n\t\t\t\t\t.lookup(\"java:\/comp\/env\/jdbc\/DSAcademicNet\");\r\n\t\t\tConnection conexao = ds.getConnection();\r\n\r\n\t\t\tPreparedStatement pstm = conexao\r\n\t\t\t\t\t.prepareStatement(\"select * from tbaluno\");\r\n\r\n\t\t\tResultSet rs = pstm.executeQuery();\r\n\r\n\t\t\twhile (rs.next()) {\r\n\t\t\t\tlistaNomes.add(rs.getString(\"nome\"));\r\n\t\t\t}\r\n\t\t\trs.close();\r\n\t\t\tpstm.close();\r\n\t\t\tconexao.close();\r\n\r\n\t\t\tmensagem = \"Consulta realizada com sucesso!\";\r\n\r\n\t\t\trequest.setAttribute(\"lista\", listaNomes);\r\n\r\n\t\t} catch (Exception e) {\r\n\t\t\tmensagem = \"Hove um erro no processamento.\" + e.getMessage();\r\n\t\t\te.printStackTrace();\r\n\t\t}\r\n\r\n\t\trequest.setAttribute(\"mensagem\", mensagem);\r\n\t\tRequestDispatcher rd = request.getRequestDispatcher(\"resultado.jsp\");\r\n\t\trd.forward(request, response);\r\n\r\n\t\tSystem.out.println(\"Fim ConexaoMySQL\");\r\n\t}\r\n}\r\n<\/pre>\n Pronto. Com as configura\u00e7\u00f5es feitas e uma aplica\u00e7\u00e3o de teste voc\u00ea poder\u00e1 fazer uso de uma Datasource no seu TOMCAT.<\/p>\n
Conclus\u00e3o<\/H2><\/p>\n
H\u00e1 muitas facilidades ao utilizarmos um datasource configurado no servidor. Al\u00e9m de ser uma configura\u00e7\u00e3o externa \u00e0 aplica\u00e7\u00e3o podemos fazer mudan\u00e7as no pool de conex\u00e3o, mudan\u00e7as de apontamento ao banco. Assim temos muitas vantagens no uso desses recursos.
\n Baixa aqui o c\u00f3digo de exemplo<\/a><\/p>\nO que pode dar errado?<\/H2>
\njava.sql.SQLException: Cannot create JDBC driver of class ” for connect URL ‘null’.<\/b>
\nVerifique se voc\u00ea alterou corretamente o arquivo context.xml. Reveja a etapa “Criar datasource no servidor tomcat”.<\/i><\/p>\n
Caused by: java.sql.SQLException: No suitable driver<\/b>
\n
\n O Driver do MySQL n\u00e3o est\u00e1 dispon\u00edvel na pasta Lib do seu servidor. Para isso fa\u00e7a o download do driver do MySQL<\/a> na pasta lib do servidor Tomcat.
\n<\/i><\/p>\nLinks relacionados<\/H2><\/p>\n
Datasource no JBoss<\/a>
\nDatasource no WildFly<\/a>
\nDatasource no NetBeans<\/a>
\nManual do Tomcat<\/a>
\nImportando um projeto Web no Eclipse<\/a><\/p>\nGostou do post? Agrade\u00e7a o autor compartilhando nas redes sociais. Clique nos links abaixo: <\/H2><\/p>\n","protected":false},"excerpt":{"rendered":"
Criar datasource no servidor Tomcat 8 Ol\u00e1 amigos. Um problema muito comum na programa\u00e7\u00e3o Java \u00e9 o fato de adicionarmos os dados de conex\u00e3o com o bando de dados diretamente em nosso c\u00f3digo. Quando precisamos enviar a aplicar para outro …<\/p>\n