Breadcrumbs

Como resolver o erro "requires Oracle client software version 8.1.7 or greater"?

Introdução

Como resolver o erro "requires Oracle client software version 8.1.7 or greater"?

Passo a passo

Segue a exceção completa do ERRO no log do Web Service:

[21]; ERROR; 2017-28-02 16:13:33.841; [Gerenciamento]; INNER EXCEPTION - MENSAGEM: System.Data.OracleClient requires Oracle client software version 8.1.7 or greater.;
[15]; ERROR; 2017-28-02 16:14:23.169; [Gerenciamento]; MENSAGEM: Error thrown by a dependency of object 'Spring.Transaction.Interceptor.TransactionInterceptor#0' : Initialization of object failed : System.Data.OracleClient requires Oracle client software version 8.1.7 or greater.
while resolving 'transactionManager' to 'transactionManager' defined in 'assembly [NDDigital.eForms.Eletronic.NHibernate.HQL.DAO, Version=4.8.6.0, Culture=neutral, PublicKeyToken=null], resource [NDDigital.eForms.Eletronic.NHibernate.HQL.DAO.Module.Dao.xml] line 292'
while resolving 'SessionFactory' to 'NHibernateSessionFactory' defined in 'assembly [NDDigital.eForms.Eletronic.NHibernate.HQL.DAO, Version=4.8.6.0, Culture=neutral, PublicKeyToken=null], resource [NDDigital.eForms.Eletronic.NHibernate.HQL.DAO.Module.Dao.xml] line 8'
SOURCE: Spring.Core
STACKTRACE: at Spring.Objects.Factory.Support.ObjectDefinitionValueResolver.ResolveReference(IObjectDefinition definition, String name, String argumentName, RuntimeObjectReference reference)
at Spring.Objects.Factory.Support.ObjectDefinitionValueResolver.ResolvePropertyValue(String name, IObjectDefinition definition, String argumentName, Object argumentValue)
at Spring.Objects.Factory.Support.ObjectDefinitionValueResolver.ResolveValueIfNecessary(String name, IObjectDefinition definition, String argumentName, Object argumentValue)
at Spring.Objects.Factory.Support.AbstractAutowireCapableObjectFactory.ApplyPropertyValues(String name, RootObjectDefinition definition, IObjectWrapper wrapper, IPropertyValues properties)
at Spring.Objects.Factory.Support.AbstractAutowireCapableObjectFactory.PopulateObject(String name, RootObjectDefinition definition, IObjectWrapper wrapper)
at Spring.Objects.Factory.Support.AbstractAutowireCapableObjectFactory.ConfigureObject(String name, RootObjectDefinition definition, IObjectWrapper wrapper)
at Spring.Objects.Factory.Support.AbstractAutowireCapableObjectFactory.InstantiateObject(String name, RootObjectDefinition definition, Object[] arguments, Boolean allowEagerCaching, Boolean suppressConfigure)
at Spring.Objects.Factory.Support.AbstractObjectFactory.CreateAndCacheSingletonInstance(String objectName, RootObjectDefinition objectDefinition, Object[] arguments)
at Spring.Objects.Factory.Support.AbstractObjectFactory.GetObjectInternal(String name, Type requiredType, Object[] arguments, Boolean suppressConfigure)
at Spring.Objects.Factory.Support.DefaultListableObjectFactory.PreInstantiateSingletons()
at Spring.Context.Support.AbstractApplicationContext.Refresh()
at NDDigital.Core.Application.ApplicationContext..ctor(ApplicationContextData contextData)
at NDDigital.Core.Application.ApplicationContextManager.CreateContext(String name, ApplicationContextData contextData, Boolean defaultCtx)
at NDDigital.eForms.Eletronic.SpringFactory.SpringContextManager.CreateDefaultContext(String contextName)
at NDDigital.eForms.WSExchangeMessage.ExchangeMessage..ctor();

Solução:

Dar permissão Full a pasta APP do Client do Oracle ao usuário Everyone.

Informações Complementares

Outro ponto que pode ser analisado, seria a versão do client estar divergente ao do banco de dados e/ou com mais de um client instalado dentro do servidor.

Outras informações

Fonte: Rainmakers Team, Victor Batista