#mysql #maven #jsp #tomcat
#mysql #maven #jsp #tomcat
Вопрос:
Я перепробовал все, но все еще не могу заставить его работать. Поэтому я вынужден задать вопрос здесь, в надежде, что найду решение. Я пишу очень простое веб-приложение JSP для локального доступа к базе данных MySQL здесь. Я развертываю сгенерированный файл WAR в Tomcat. Я использую последние версии (по состоянию на 9.8.2020) MySQL (8.0.21) и Tomcat (9.0.37). Мой Maven pom.xml имеет ли это:
...
<dependencies&&t;
<dependency&&t;
<&roupId&&t;mysql</&roupId&&t;
<artifactId&&t;mysql-connector-java</artifactId&&t;
<version&&t;8.0.21</version&&t;
</dependency&&t;
<dependency&&t;
<&roupId&&t;javax.servlet</&roupId&&t;
<artifactId&&t;jstl</artifactId&&t;
<version&&t;1.2</version&&t;
</dependency&&t;
</dependencies&&t;
...
Затем в моем файле JSP есть эти (пароль не показан):
<%@ pa&e import = "java.io.*,java.util.*,java.sql.*"%&&t;
<%@ pa&e import = "javax.servlet.http.*,javax.servlet.*"%&&t;
<%@ ta&lib uri="http://java.sun.com/jsp/jstl/core" prefix = "c"%&&t;
<%@ ta&lib uri="http://java.sun.com/jsp/jstl/sql" prefix = "sql"%&&t;
<!DOCTYPE html&&t;
<html lan&="en"&&t;
<head&&t;
...
<sql:setDataSource var="mystraDB" driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/mystra" user="root" password="###"/&&t;
<sql:query var="result" dataSource="${mystraDB}"&&t;
SELECT id, isbn, title FROM mystra.books;
</sql:query&&t;
...
Как я показываю во многих решениях, я также скопировал mysql-connector-java-8.0.21.jar файл в папке Tomcats lib.
Я использую Visual Studio Code, и я использую его расширение Tomcat для Java, где я могу запускать и останавливать Tomcat, и я могу отлаживать пакет WAR и тестировать его оттуда.
Проблема, с которой я сталкиваюсь, заключается в следующем:
javax.servlet.Исключение ServletException: javax.servlet.jsp.JspException: не удается установить соединение, источник данных недействителен: «java.sql.SQLException: не найден подходящий драйвер для $ {mystraDB}»
для следующей строки:
or&.apache.jasper.JasperException: An exception occurred processin& [/fetchBooks.jsp] at line [30]
27: <sql:setDataSource var="mystraDB" driver="com.mysql.jdbc.Driver"
28: url="jdbc:mysql://localhost:3306/mystra" user="root" password="###"/&&t;
29:
30: <sql:query var="result" dataSource="${mystraDB}"&&t;
31: SELECT id, isbn, title FROM mystra.books;
32: </sql:query&&t;
33:
У вас есть какие-либо оставшиеся идеи о том, как я могу решить эту проблему?
Все, что не показано здесь, приветствуется 🙂
Ответ №1:
У других возникли проблемы, я нашел, в чем проблема с моим проектом. Я не смог разобрать выражения EL с помощью $. Итак, я добавил эту строку в каждый jsp, который у меня был:
<%@ pa&e isELI&nored="false" %&&t;
Также я обновил web.xml вот так:
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.or&/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4"&&t;