Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Erro ao tentar gerar tabela Usuario

Pessoal, ao pressionar f5 para rodar o código, surgem os erros, cujo detalhe segue abaixo:

NHibernate.Cfg.HibernateConfigException was unhandled
  HResult=-2146232832
  Message=An exception occurred during configuration of persistence layer.
  Source=NHibernate
  StackTrace:
       em NHibernate.Cfg.ConfigurationSchema.HibernateConfiguration..ctor(XmlReader hbConfigurationReader, Boolean fromAppSetting)
       em NHibernate.Cfg.ConfigurationSchema.HibernateConfiguration..ctor(XmlReader hbConfigurationReader)
       em NHibernate.Cfg.Configuration.Configure(XmlReader textReader)
       em NHibernate.Cfg.Configuration.Configure(String fileName, Boolean ignoreSessionFactoryConfig)
       em NHibernate.Cfg.Configuration.Configure(String fileName)
       em NHibernate.Cfg.Configuration.Configure()
       em Loja.Infra.NHibernateHelper.RecuperaConfiguracao() na c:\Users\Home\Documents\Visual Studio 2012\Loja\Loja\Infra\NHibernateHelper.cs:linha 19
       em Loja.Infra.NHibernateHelper.GeraSchema() na c:\Users\Home\Documents\Visual Studio 2012\Loja\Loja\Infra\NHibernateHelper.cs:linha 26
       em Loja.Program.Main(String[] args) na c:\Users\Home\Documents\Visual Studio 2012\Loja\Loja\Program.cs:linha 13
       em System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
       em System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
       em Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       em System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       em System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       em System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       em System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       em System.Threading.ThreadHelper.ThreadStart()
  InnerException: System.IO.FileNotFoundException
       HResult=-2147024894
       Message=Não foi possível localizar o arquivo 'C:\Users\Home\Documents\Visual Studio 2012\Loja\Loja\bin\Debug\hibernate.cfg.xml'.
       Source=mscorlib
       FileName=C:\Users\Home\Documents\Visual Studio 2012\Loja\Loja\bin\Debug\hibernate.cfg.xml
       StackTrace:
            em System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
            em System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
            em System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize)
            em System.Xml.XmlDownloadManager.GetStream(Uri uri, ICredentials credentials, IWebProxy proxy, RequestCachePolicy cachePolicy)
            em System.Xml.XmlUrlResolver.GetEntity(Uri absoluteUri, String role, Type ofObjectToReturn)
            em System.Xml.XmlTextReaderImpl.OpenUrlDelegate(Object xmlResolver)
            em System.Threading.CompressedStack.runTryCode(Object userData)
            em System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
            em System.Threading.CompressedStack.Run(CompressedStack compressedStack, ContextCallback callback, Object state)
            em System.Xml.XmlTextReaderImpl.OpenUrl()
            em System.Xml.XmlTextReaderImpl.Read()
            em System.Xml.XmlTextReader.Read()
            em System.Xml.XmlCharCheckingReader.Read()
            em System.Xml.XsdValidatingReader.Read()
            em System.Xml.XPath.XPathDocument.LoadFromReader(XmlReader reader, XmlSpace space)
            em System.Xml.XPath.XPathDocument..ctor(XmlReader reader, XmlSpace space)
            em System.Xml.XPath.XPathDocument..ctor(XmlReader reader)
            em NHibernate.Cfg.ConfigurationSchema.HibernateConfiguration..ctor(XmlReader hbConfigurationReader, Boolean fromAppSetting)
       InnerException:

Procurei bastante por aqui, mas não encontrei a solução para o problema. O que poderá estar acontecendo?

5 respostas

Pessoal, coloquei manualmente o arquivo hibernate.cfg.xml na pasta /bin/debug, e agora surge, como uma das informações, de que o problema se refere à linha

Depois que vi essa mensagem, lembrei-me de que, quando estava escrevendo a referida linha,, ao digitar xmlns=, no menu que surge, não aparece o item "urn:nhibernate-configuration-2.2". Escrevi manualmente esse item. Será que é por isso que está acontecendo esse erro? Quem poderá me socorrer?!!!! RSRS

Oi José

O seu primeiro problema aconteceu por que você provavelmente se esqueceu de mudar a opção Copy To Output Directory para Copy Always na janela de propriedades do hibernate.cfg.xml

Você ainda está tendo mais problemas com o seu arquivo de configuração? Se sim, poste a stack trace que está sendo mostrada pelo programa e também o conteúdo do seu arquivo de configuração.

Olá, Victor! Alterei para Copy Aways, e agora as mensagens são:

NHibernate.MappingException was unhandled
  HResult=-2146232832
  Message=Could not compile the mapping document: Loja.Mapeamentos.Usuario.hbm.xml
  Source=NHibernate
  StackTrace:
       em NHibernate.Cfg.Configuration.LogAndThrow(Exception exception)
       em NHibernate.Cfg.Configuration.LoadMappingDocument(XmlReader hbmReader, String name)
       em NHibernate.Cfg.Configuration.AddXmlReader(XmlReader hbmReader, String name)
       em NHibernate.Cfg.Configuration.AddInputStream(Stream xmlInputStream, String name)
       em NHibernate.Cfg.Configuration.AddResource(String path, Assembly assembly)
       em NHibernate.Cfg.Configuration.AddAssembly(Assembly assembly)
       em Loja.Infra.NHibernateHelper.RecuperaConfiguracao() na c:\Users\Home\Documents\Visual Studio 2012\Loja\Loja\Infra\NHibernateHelper.cs:linha 18
       em Loja.Infra.NHibernateHelper.GeraSchema() na c:\Users\Home\Documents\Visual Studio 2012\Loja\Loja\Infra\NHibernateHelper.cs:linha 24
       em Loja.Program.Main(String[] args) na c:\Users\Home\Documents\Visual Studio 2012\Loja\Loja\Program.cs:linha 13
       em System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
       em System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
       em Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       em System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       em System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       em System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       em System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       em System.Threading.ThreadHelper.ThreadStart()
  InnerException: System.InvalidOperationException
       HResult=-2146233079
       Message=Erro no documento XML (1, 2).
       Source=System.Xml
       StackTrace:
            em System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
            em System.Xml.Serialization.XmlSerializer.Deserialize(TextReader textReader)
            em NHibernate.Cfg.NamedXmlDocument..ctor(String name, XmlDocument document, XmlSerializer serializer)
            em NHibernate.Cfg.NamedXmlDocument..ctor(String name, XmlDocument document)
            em NHibernate.Cfg.Configuration.LoadMappingDocument(XmlReader hbmReader, String name)
       InnerException: System.InvalidOperationException
            HResult=-2146233079
            Message=<hibernate-mapping xmlns='urn:hibernate-mapping-2.2'> não era esperado.
            Source=Microsoft.GeneratedCode
            StackTrace:
                 em Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderHbmMapping.Read109_hibernatemapping()
            InnerException:

O arquivo hibernate.cfg.xml está assim:

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
    <session-factory>
        <property name="connection.provider">
            NHibernate.Connection.DriverConnectionProvider
        </property>
        <property name="dialect">
            NHibernate.Dialect.MySQL5Dialect
        </property>
        <property name="connection.driver_class">
            NHibernate.Driver.MySqlDataDriver
        </property>
        <property name="connection.connection_string">
            Server=localhost; Database=loja; Uid=nhibernate; Pwd=joniba;
        </property>
        <property name="show_sql">true</property>

    </session-factory>
</hibernate-configuration>

Estou parado no curso, pois tenho de gerar a tabela para ir para o próximo capítulo! Um abraço!

solução!

Oi José

O problema agora é no seu arquivo de mapeamento para a entidade Usuario, o Usuario.hbm.xml. No começo do arquivo você colocou o xmlns="urn:hibernate-mapping-2.2" quando deveria ser xmlns="urn:nhibernate-mapping-2.2". Essa é a parte relevante da exceção que indica esse erro:

InnerException: System.InvalidOperationException
            HResult=-2146233079
            Message=<hibernate-mapping xmlns='urn:hibernate-mapping-2.2'> não era esperado.
            Source=Microsoft.GeneratedCode
            StackTrace:
                 em Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderHbmMapping.Read109_hibernatemapping()
            InnerException:

Sempre que possível tente ler o campo Message das exceções e InnerExceptions que são mostradas na Stack Trace, eles revelam tudo que você precisa saber para diagnosticar qual é o ponto do código que não está funcionando.

Puxa! Vivendo e aprendendo! Agora deu tudo certo!!!! Muito obrigado, professor!