В моем приложении я хочу добавить имя пользователя и пароль в базу данных, когда пользователь регистрируется и нажимает «зарегистрироваться» через servlet2.java
, но при локальном развертывании tomcat вместо добавления данных в базу данных выбрасывается class not found exception
, я уже добавил mysql jar в lib, но все равно никакой пользы. Вот ссылка для скачивания на мой проект. Если кто может, помогите исправить ошибку.
Вот полная трассировка стека.
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1363)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1186)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:315)
at source.servlet2.database(servlet2.java:23)
at source.servlet2.doPost(servlet2.java:16)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:200)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:834)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:834)
22-May-2019 19:22:52.550 INFO [Catalina-utility-2] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [D:\apache-tomcat-9.0.17\webapps\manager]
22-May-2019 19:22:52.735 INFO [Catalina-utility-2] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [D:\apache-tomcat-9.0.17\webapps\manager] has finished in [185] ms
Кроме того, проверьте, присутствуют ли jar-файлы в каталоге lib внутри каталога приложения в каталоге tomcat/webapps/.
нам нужно намного больше, чтобы помочь. Полная трассировка стека, как вы добавили драйвер, maven? Мануал в IDE? какую банку вы добавили и т. д.
Вы можете добавить jar в путь к классам tomcat, как описано здесь stackoverflow.com/a/7198049/2000323
Ну, я добавил трассировку стека, я добавил банку через структуру проекта/модули/библиотеку/maven, а затем загрузил последнюю версию банки mysql.
У вас есть область provided
для JAR драйвера jdbc. В этом случае он не копируется в артефакт, который вы развертываете на tomcat. Вам нужно указать его как область действия compile
.
Вы также можете добавить jar в путь к классам tomcat, как описано здесь https://stackoverflow.com/a/7198049/2000323 для всех приложений. Затем вы должны указать область действия как provided
, чтобы одна и та же банка не развертывалась дважды.
Я добавил все 4 файла войны в tomcat/lib, но пометил область как предоставленную и попытался как отметить, так и снять отметку с опции экспорта, но все еще сталкиваюсь с проблемой, я также добавил трассировку стека
Не могли бы вы также добавить трассировку стека.