|
Создать соединение веб-приложения Java на Tomcat с MySQL
|
|||
---|---|---|---|
#18+
Есть простое приложение на Java для тестов на присоединение к базе данных MySQL. Что я делал: <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns=" http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> <resource-ref> <res-ref-name> jdbc/library </res-ref-name> <res-type> javax.sql.DataSource </res-type> <res-auth> Container </res-auth> </resource-ref> </web-app> Создал файл context.xml в META-INF ,там прописал вот это <?xml version="1.0" encoding="UTF-8"?> <Context > <Resource name="jdbc/library" auth="Container" type="javax.sql.DataSource" username="admin" password="admin" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/library" maxTotal="8" maxIdle="4"/> </Context> Далее создал простой Java класс для теста конекта: package test; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.sql.DataSource; import java.sql.Connection; import java.sql.SQLException; public class tt1 { public void check() throws NamingException, SQLException { Context initCtx = new InitialContext(); Context envCtx = (Context) initCtx.lookup("java:comp/env"); DataSource ds = (DataSource) envCtx.lookup("jdbc/library"); Connection conn = ds.getConnection(); if (conn==null) { System.out.println("failed"); } else System.out.println("connection is good"); conn.close(); } } Далее в Index.jsp прописал вот это: <%@ page import="test.tt1" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>test</title> </head> <body> <h1>Test</h1> <h2> <% tt1 ss=new tt1(); ss.check(); %> </h2> </body> </html> Далее у меня есть два файла первый mysql-connector-java-8.0.13.jar, который я вытащил из коннектора, который установился вместе с сервером и второй файл mysql-connector-java-5.1.47-bin.jar, который я вытащил из архива к прошлым версиям томкат. Этот файл я кладу в папку TOMCAT/lib Если кладу первый файл, то получаю вот такую ошибку: rg.apache.jasper.JasperException: An exception occurred processing [/index.jsp] at line [18] 15: <h2> 16: <% 17: tt1 ss=new tt1(); 18: ss.check(); 19: 20: %> 21: </h2> Stacktrace: org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:607) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:481) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) Root Cause javax.servlet.ServletException: java.sql.SQLException: Cannot create JDBC driver of class '' for connect URL 'null' org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:667) org.apache.jsp.index_jsp._jspService(index_jsp.java:148) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:458) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) Root Cause java.sql.SQLException: Cannot create JDBC driver of class '' for connect URL 'null' org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createConnectionFactory(BasicDataSource.java:2224) org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:2104) org.apache.tomcat.dbcp.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:1563) test.tt1.check(tt1.java:17) org.apache.jsp.index_jsp._jspService(index_jsp.java:130) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:458) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) Root Cause java.sql.SQLException: No suitable driver java.sql.DriverManager.getDriver(DriverManager.java:315) org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createConnectionFactory(BasicDataSource.java:2209) org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:2104) org.apache.tomcat.dbcp.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:1563) test.tt1.check(tt1.java:17) org.apache.jsp.index_jsp._jspService(index_jsp.java:130) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:458) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) если кладу бинарный джарник старой версии Stacktrace: org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:607) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:481) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) Root Cause javax.servlet.ServletException: java.sql.SQLException: Cannot create JDBC driver of class '' for connect URL 'null' org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:667) org.apache.jsp.index_jsp._jspService(index_jsp.java:148) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:458) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) Root Cause java.sql.SQLException: Cannot create JDBC driver of class '' for connect URL 'null' org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createConnectionFactory(BasicDataSource.java:2224) org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:2104) org.apache.tomcat.dbcp.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:1563) test.tt1.check(tt1.java:17) org.apache.jsp.index_jsp._jspService(index_jsp.java:130) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:458) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) Root Cause java.lang.NullPointerException com.mysql.fabric.jdbc.FabricMySQLDriver.parseFabricURL(FabricMySQLDriver.java:97) com.mysql.fabric.jdbc.FabricMySQLDriver.acceptsURL(FabricMySQLDriver.java:93) java.sql.DriverManager.getDriver(DriverManager.java:299) org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createConnectionFactory(BasicDataSource.java:2209) org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:2104) org.apache.tomcat.dbcp.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:1563) test.tt1.check(tt1.java:17) org.apache.jsp.index_jsp._jspService(index_jsp.java:130) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:458) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53 очень много перерыл информации,но решения проблемы так и не нашел. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2019, 17:53 |
|
Создать соединение веб-приложения Java на Tomcat с MySQL
|
|||
---|---|---|---|
#18+
вообщем как оказалось нужно делать все по старинке ,а именно вместо datasoursce регистрировать драйвер и класть его в папку проекта,причем 8й коннектор не работает вообще ,а только лишь 5я версия. driver=new com.mysql.jdbc.Driver(); DriverManager.registerDriver(driver); con = DriverManager.getConnection("jdbc:mysql://localhost:3306/library","admin","admin"); вместо этого Context initCtx = new InitialContext(); Context envCtx = (Context) initCtx.lookup("java:comp/env"); DataSource ds = (DataSource) envCtx.lookup("jdbc/library"); Connection conn = ds.getConnection(); ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2019, 20:35 |
|
Создать соединение веб-приложения Java на Tomcat с MySQL
|
|||
---|---|---|---|
#18+
asv79причем 8й коннектор не работает вообщевот ля-ля не надо. 8 работает с 8- версиями mysql ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2019, 21:23 |
|
|
start [/forum/topic.php?fid=47&fpage=41&tid=1829367]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
60ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
others: | 49ms |
total: | 188ms |
0 / 0 |