Hello I have Tomcat 8.0.9 running under NetBeans. An application using JDBCRealm is authenticating and authorising users OK but Tomcat is logging errors.
Errors get logged on Tomcat startup and another each time a user logs in. Numerous occurrences of this Exception: 10-Nov-2014 15:18:48.108 SEVERE [http-nio-8080-exec-3] org.apache.catalina.realm.JDBCRealm.getPassword Exception performing authentication java.sql.SQLException: Closed Statement at oracle.jdbc.driver.OracleClosedStatement.setString(OracleClosedStatement.java:731) at oracle.jdbc.driver.OraclePreparedStatementWrapper.setString(OraclePreparedStatementWrapper.java:289) at org.apache.catalina.realm.JDBCRealm.credentials(JDBCRealm.java:484) at org.apache.catalina.realm.JDBCRealm.getPassword(JDBCRealm.java:525) at org.apache.catalina.realm.JDBCRealm.authenticate(JDBCRealm.java:387) at org.apache.catalina.realm.JDBCRealm.authenticate(JDBCRealm.java:334) at org.apache.catalina.authenticator.BasicAuthenticator.authenticate(BasicAuthenticator.java:111) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:578) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:136) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:526) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:655) at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:222) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1566) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1523) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745) And just one of this: 10-Nov-2014 15:18:49.249 FINE [http-nio-8080-exec-7] org.apache.catalina.util.LifecycleBase.start The start() method was called on component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/di]] after start() had already been called. The second call will be ignored. org.apache.catalina.LifecycleException at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:127) at org.apache.catalina.manager.ManagerServlet.start(ManagerServlet.java:1270) at org.apache.catalina.manager.ManagerServlet.doGet(ManagerServlet.java:357) at javax.servlet.http.HttpServlet.service(HttpServlet.java:618) at javax.servlet.http.HttpServlet.service(HttpServlet.java:725) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291) 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 org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108) 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:615) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:136) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:526) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:655) at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:222) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1566) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1523) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745) The Realm is defined in server.xml as follows: <Realm className="org.apache.catalina.realm.JDBCRealm" connectionName="weblogin01" connectionPassword="xxxxxx" type="javax.sql.DataSource" driverName="oracle.jdbc.OracleDriver" connectionURL="jdbc:oracle:thin:@10.15.120.29:1522:DGSPC" userTable="weblogin.t_user" userNameCol="username" userCredCol="password" userRoleTable="weblogin.t_user_role" roleNameCol="rolename" /> The context.xml file is as follows: <?xml version="1.0" encoding="UTF-8"?> <Context antiJARLocking="true" path="/di"> <ResourceLink name="jdbc/sforum01" global="jdbc/sforum01" type="javax.sql.DataSource"/> <ResourceLink name="jdbc/DonorImports" global="jdbc/DonorImports" type="javax.sql.DataSource"/> </Context> The Oracle driver I'm using is ojdbc7.jar which comes with Oracle 12.1.0.1 It is my intention to replace JDBCRealm with a custom realm but I don't want to embark on writing that until I understand what is wrong with my current setup. I welcome your thoughts. Vince ________________________________ This e-mail is for the sole use of the intended recipient and contains information that may be privileged and/or confidential. If you are not an intended recipient, please notify the sender by return e-mail and delete this e-mail and any attachments. Certain required legal entity disclosures can be accessed on our website.<http://thomsonreuters.com/prof_disclosures/>