Webapp не запускается под Tomcat 8.0.23

У меня есть веб-приложение, работающее в tomcat 7 и tomcat 6. Но когда я пытаюсь перейти на tomcat 8, это не позволяет мне, есть некоторые исключения, подобные этому:

javax.servlet.ServletException: La ejecución del Servlet lanzó una excepción
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:314)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at mx.com.vw.servlet.filters.StylizerFilter.doFilter(StylizerFilter.java:112)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:617)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:668)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2463)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2452)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.AbstractMethodError
at org.apache.tomcat.dbcp.dbcp2.DelegatingConnection.isValid(DelegatingConnection.java:913)
at org.apache.tomcat.dbcp.dbcp2.DelegatingConnection.isValid(DelegatingConnection.java:913)
at org.apache.tomcat.dbcp.dbcp2.PoolableConnection.validate(PoolableConnection.java:226)
at org.apache.tomcat.dbcp.dbcp2.PoolableConnectionFactory.validateConnection(PoolableConnectionFactory.java:302)
at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.validateConnectionFactory(BasicDataSource.java:2208)
at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:2191)
at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:1945)
at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:1412)
at mx.com.vw.db.PoolDataAccessor.openConnection(PoolDataAccessor.java:50)
at mx.com.vw.kp.servlet.SemaphoreServlet.retrieve(SemaphoreServlet.java:130)
at mx.com.vw.kp.servlet.SemaphoreServlet.processRequest(SemaphoreServlet.java:57)
at mx.com.vw.kp.servlet.SemaphoreServlet.doGet(SemaphoreServlet.java:340)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
... 23 more`

Вот мой файл контекста из моего приложения:

<Resource auth="Container" 
  connectionProperties="autoReconnect=true;
  secondsBeforeRetryMaster=20;
  autoReconnectForPools=true;
  cachePrepStmts=true;" 
  driverClassName="com.mysql.jdbc.Driver" 
  factory="org.apache.tomcat.dbcp.dbcp2.BasicDataSourceFactory"
  logAbandoned="false" 
  maxTotal="10" 
  maxIdle="3" 
  maxOpenPreparedStatements="-1" 
  maxWaitMillis="-1" 
  name="jdbc/KPPool" 
  password="infOmaP78257" 
  poolPreparedStatements="true" 
  removeAbandonedOnBorrow="true" 
  removeAbandonedOnMaintenance="true"
  removeAbandonedTimeout="30" 
  type="javax.sql.DataSource" 
  url="jdbc:mysql://myhost:3306/mybd?noAccessToProcedureBodies=true" 
  username="myuser"/>

<Realm className="org.apache.catalina.realm.JDBCRealm" 
  connectionName="java_apps" 
  connectionPassword="mypass" 
  connectionURL="jdbc:mysql://myhost:3306/mybd" 
  driverName="com.mysql.jdbc.Driver"                                        
  roleNameCol="role" 
  userCredCol="password" 
  userNameCol="username" 
  userRoleTable="roles" 
  userTable="users"
  localDataSource="true"
  debug="99"/>

Я думаю, что это связано с моим подключением к базе данных, потому что, как только я попытался сделать что-то, что требует подключения к базе данных, он отправит мне исключение.

Я использую netbeans 8.2, работаю в Windows 7. Я новичок в работе с jsp и прочим, поэтому я не знаю, что мне здесь не хватает. у кого-нибудь есть решение? или у вас есть файлы конфигурации tomcat 8, которые я могу проверить? Буду признателен за вашу помощь.

Спасибо?


person Azu    schedule 18.06.2015    source источник
comment
Я думаю, вы связываете банку со своим веб-приложением, которое уже содержится в tomcat. Вы можете перечислить все банки, которые у вас есть в WEB-INF/lib?   -  person geert3    schedule 19.06.2015


Ответы (2)


Ошибка возникает, когда пул соединений пытается делегировать проверку соединения базовому драйверу jdbc. Для подтверждения попробуйте добавить этот параметр конфигурации под элементом Resource вашего файла контекста:

validationQuery="select 1"

Это укажет DBCP использовать этот запрос проверки вместо делегирования проверки. Iirc, проверка была отключена по умолчанию в Tomcat 7 (DBCP 1.x), чтобы можно было объяснить изменение поведения.

person David Levesque    schedule 18.06.2015
comment
Я добавил строку в свой файл контекста, и он отправляет следующее: org.apache.catalina.LifecycleException: Не удалось запустить компонент [StandardEngine [Catalina] .StandardHost [localhost] .StandardContext [/ kp6]] в org.apache.catalina.util .LifecycleBase.start (LifecycleBase.java:154) в org.apache.catalina.core.ContainerBase.addChildInternal (ContainerBase.java:725) в org.apache.catalina.core.ContainerBase.addChild (ContainerBase.java:701) в org.apache.catalina.core.StandardHost.addChild (StandardHost.java:717) в org.apache.catalina.startup.HostConfig.deployDescriptor (HostConfig.java:586) ... - person Azu; 19.06.2015
comment
Можете ли вы включить в свой вопрос полную трассировку стека? Особенно вызванный разделами. - person David Levesque; 19.06.2015

У меня была такая же проблема, когда я обновил tomcat7 до tomcat8.5. Я ответил на эту проблему, проверьте приведенную ниже ссылку, возможно, вы можете решить вашу проблему.

Tomcat 8, Axis2 веб-службы aar , spring jndi не привязан к контексту

person Ranjan    schedule 18.12.2019