2012-06-29 36 views
5

que tienen configuración de base de datos Oracle en server.xml de Tomcatdando el nombre de usuario y la contraseña correctos, obtenga ORA-01017: nombre de usuario/contraseña no válidos; Inicio de sesión denegado

<Resource name="jdbc/sgfdb" auth="Container" 
      driverClassName="oracle.jdbc.OracleDriver" 
      url="jdbc:oracle:thin:@databaseurl:1521:schema" 
      username="username" password="password" maxActive="20" maxIdle="10" 
      maxWait="-1" 
      factory="oracle.jdbc.pool.OracleDataSourceFactory" 
      type="oracle.jdbc.pool.OracleDataSource"/> 

Luego, en mi aplicación web (proyecto MVC primavera), i declear esto en context.xml

<Context> 
<ResourceLink name="jdbc/sgfdb" 
     global="jdbc/sgfdb" 
     type="javax.sql.DataSource"/> 
</Context> 

pude conectarse a esta base de datos antes. No trabajé en eso por una semana. Entonces, cuando intente iniciarlo, siempre obtenga:

SEVERE: Servlet.service() for servlet [action] in context with path [/WebUI] threw exception [Request processing failed; nested exception is javax.persistence.QueryTimeoutException: Could not open connection] with root cause 
**java.sql.SQLException: ORA-01017: invalid username/password; logon denied** 

at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:440) 
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:389) 
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:382) 
at oracle.jdbc.driver.T4CTTIfun.processError(T4CTTIfun.java:573) 
at oracle.jdbc.driver.T4CTTIoauthenticate.processError(T4CTTIoauthenticate.java:431) 
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:445) 
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:191) 
at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:366) 
at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:752) 
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:366) 
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:536) 
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:228) 
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32) 
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:521) 
at oracle.jdbc.pool.OracleDataSource.getPhysicalConnection(OracleDataSource.java:280) 
at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:207) 
at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:157) 
at org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider.getConnection(InjectedDataSourceConnectionProvider.java:70) 
at org.hibernate.internal.AbstractSessionImpl$NonContextualJdbcConnectionAccess.obtainConnection(AbstractSessionImpl.java:278) 
at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:297) 
at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.getConnection(LogicalConnectionImpl.java:169) 
at org.hibernate.engine.jdbc.internal.proxy.ConnectionProxyHandler.extractPhysicalConnection(ConnectionProxyHandler.java:82) 
at org.hibernate.engine.jdbc.internal.proxy.ConnectionProxyHandler.continueInvocation(ConnectionProxyHandler.java:138) 
at org.hibernate.engine.jdbc.internal.proxy.AbstractProxyHandler.invoke(AbstractProxyHandler.java:81) 
at $Proxy36.prepareStatement(Unknown Source) 
at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$5.doPrepare(StatementPreparerImpl.java:147) 
at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement(StatementPreparerImpl.java:166) 
at org.hibernate.engine.jdbc.internal.StatementPreparerImpl.prepareQueryStatement(StatementPreparerImpl.java:145) 
at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1720) 
at org.hibernate.loader.Loader.doQuery(Loader.java:828) 
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:289) 
at org.hibernate.loader.Loader.doList(Loader.java:2447) 
at org.hibernate.loader.Loader.doList(Loader.java:2433) 
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2263) 
at org.hibernate.loader.Loader.list(Loader.java:2258) 
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:470) 
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:355) 
at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:195) 
at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1215) 
at org.hibernate.internal.QueryImpl.list(QueryImpl.java:101) 
at org.hibernate.ejb.QueryImpl.getSingleResult(QueryImpl.java:284) 
at org.hibernate.ejb.criteria.CriteriaQueryCompiler$3.getSingleResult(CriteriaQueryCompiler.java:258) 
at mycompany.services.impl.JobServiceImpl.getNumberOfJobs(JobServiceImpl.java:51) 
at mycompany.controller.ExecJobController.execJobList(ExecJobController.java:78) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
at java.lang.reflect.Method.invoke(Method.java:597) 
at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:213) 
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126) 
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96) 
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617) 
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578) 
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80) 
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923) 
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852) 
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) 
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:641) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169) 
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) 
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) 
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999) 
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565) 
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307) 
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
at java.lang.Thread.run(Thread.java:662) 

Estoy seguro de que el nombre de usuario y la contraseña son correctos. ¿Podría alguien darme alguna pista sobre lo que sucede aquí?

+0

¿Por qué crees que la contraseña es correcta? Si el código trabajó en el pasado y el código no se ha modificado, la inferencia lógica es que la contraseña debe haber cambiado.Tal vez la contraseña no cambió, pero el administrador de bases de datos habilitó las contraseñas sensibles a las mayúsculas y minúsculas, por lo que la contraseña que almacenó se volvió incorrecta. –

+0

Estoy usando esta base de datos ahora también. ¡Puedo usar esta contraseña para conectarme desde el desarrollador de sql en la misma máquina ahora! Gracias –

+0

¿Cómo se configura la conexión en SQL Developer? ¿Estás usando una conexión básica? Una conexión TNS? ¿Algo más? Cuando publicaste la URL JDBC que está usando tu aplicación, ¿escribiste inadvertidamente 'schema' donde quisiste decir' service name'-- 'jdbc: oracle: thin: @databaseurl: 1521: schema' debería ser' jdbc: oracle: thin: @databaseurl: 1521: nombre del servicio'. El error que está recibiendo indica que el nombre de usuario y la contraseña son incorrectos. O bien la contraseña es incorrecta, el nombre de usuario es incorrecto o está intentando conectarse a la base de datos incorrecta. –

Respuesta

2

Resuelto. El problema es que no debería usar

factory="oracle.jdbc.pool.OracleDataSourceFactory" 

¡Después de eliminar eso, funciona bien!

+1

¿Dónde está esto? ¿En qué archivo puedo encontrarlo? – rainman

+0

@rainman search this page –

1

es posible que el usuario que está intentando abrir una sesión tiene una contraseña caducada

+0

Estoy realmente seguro de que es una contraseña de trabajo. Además de este proyecto web, todavía lo estoy usando en algunos otros proyectos. ¡¡¡Gracias!!! –

1
  • El nombre de usuario puede ser incorrecta.
  • La contraseña puede ser incorrecta.
  • El servidor/instancia al que se está conectando podría ser incorrecto o diferente entre su máquina y el servidor, o entre la aplicación y SQL Developer.
  • La base de datos puede estar configurada para usar contraseñas que distingan entre mayúsculas y minúsculas.
  • La contraseña puede contener un punto y coma ; carácter causando la cadena de conexión para obtener trunca cuando la aplicación se construye la cadena de conexión, pero lo que le permite utilizarlo desde SQL Developer (?)
  • usted podría tener un error en alguna parte (?)
+1

Tengo el 180% de seguridad de que el nombre de usuario es correcto, la contraseña es corrent, la URL es correcta (no doy mi URL aquí). Puedo conectarme desde el desarrollador de sql con la misma URL, nombre de usuario y contraseña. Me preguntaba porque tengo db configurado en tomcat, ¿hay algo en mi configuración que no funciona o algo así? Pero la gente simplemente siente que no le doy el nombre de usuario/contraseña correctos. ¡¡¡¡¡¡Venga!!!!!! Esos son los básicos, ¡cómo las personas se esforzarían por publicar preguntas antes de que hagan un control básico primero! –

6

Acabo de resolver un problema similar a esto. Si una base de datos 11g está configurada para contraseñas sensibles a las mayúsculas y minúsculas, pero está intentando conectarse utilizando un cliente 10g, el cliente 10g enviará la contraseña en mayúsculas a la base de datos, por lo tanto, una contraseña no válida cuando la contraseña ingresada sea claramente correcto. Por lo tanto, debe actualizar el cliente a 11g para que envíe la contraseña en el caso correcto (pero para una prueba rápida puede cambiar su contraseña a mayúsculas y podrá conectarse).

+0

11g ahora es compatible. Todo lo que tienes que hacer es usar 'org.hibernate.dialect.Oracle10gDialect' – abhi

1

Si su contraseña y nombre de usuario son minúsculas y su modo en mayúsculas tiene un valor diferente (como i, İ en turco), esto podría causar el problema. Algunas bibliotecas de conexión Java-Oracle las hacen mayúsculas sin ver las diferencias culturales.

1

Me topé con este hilo porque estaba enfrentando el mismo problema. El nombre de usuario y la contraseña fueron perfectos. Pude iniciar sesión usando esas credenciales en SQLPlus y desde otras aplicaciones. El datasource.url también fue perfecto.

Mientras analizaba los errores, descubrí que el archivo ojdbc6.jar que estaba utilizando intentaba conectar con Oracle 11.1.0.7 mientras que Oracle era 11.2.0.4. Descargado el último ojdbc6.jar y tratado de conectarse y listo!

Cuestiones relacionadas