我遇到问题。我没有用nhibernate配置spring。这里是错误信息Spring.Net + Nhibernate配置
创建上下文'spring.root'时出错:实例失败。
这里是我的配置
的web.config
<configuration>
<configSections>
<sectionGroup name="spring">
<section name="context" type="Spring.Context.Support.ContextHandler, Spring.Core"/>
<section name="objects" type="Spring.Context.Support.DefaultSectionHandler, Spring.Core"/>
<section name="parsers" type="Spring.Context.Support.NamespaceParsersSectionHandler, Spring.Core"/>
</sectionGroup>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
</configSections>
<spring>
<parsers>
<parser type="Spring.Data.Config.DatabaseNamespaceParser, Spring.Data"/>
</parsers>
<context>
<resource uri="~//SpringSetup.xml"/>
</context>
</spring>
<appSettings></appSettings>
<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
</system.web>
<log4net>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%-5level %logger - %message%newline"/>
</layout>
</appender>
<!-- Set default logging level to DEBUG -->
<root>
<level value="DEBUG"/>
<appender-ref ref="ConsoleAppender"/>
</root>
<!-- Set logging for Spring. Logger names in Spring correspond to the namespace -->
<logger name="Spring">
<level value="INFO"/>
</logger>
<logger name="Spring.Data">
<level value="DEBUG"/>
</logger>
<logger name="NHibernate">
<level value="DEBUG"/>
</logger>
</log4net>
SpringSetup.xml
<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net" xmlns:db="http://www.springframework.net/database">
<!--<object id="Sauce"
type="Ploeh.Samples.MenuModel.SauceBéarnaise,
Ploeh.Samples.MenuModel" />-->
<!-- Database and NHibernate Configuration -->
<db:provider id="DbProvider"
provider="SqlServer-2.0"
connectionString="Data Source=PC-PROF\\SQLEXPRESS;Database=db_workn;Trusted_Connection=False;"/>
<!-- NHibernate SessionFactory configuration -->
<object id="NHibernateSessionFactory" type="Spring.Data.NHibernate.LocalSessionFactoryObject, Spring.Data.NHibernate21">
<property name="DbProvider" ref="DbProvider"/>
<property name="MappingAssemblies">
<list>
<value>Work</value>
</list>
</property>
<property name="HibernateProperties">
<dictionary>
<entry key="connection.provider" value="NHibernate.Connection.DriverConnectionProvider"/>
<entry key="dialect" value="NHibernate.Dialect.MsSql2008Dialect"/>
<entry key="connection.driver_class" value="NHibernate.Driver.SqlClientDriver"/>
</dictionary>
</property>
</object>
<!-- gestionnaire de transactions -->
<object id="transactionManager"
type="Spring.Data.NHibernate.HibernateTransactionManager, Spring.Data.NHibernate21">
<property name="DbProvider" ref="DbProvider"/>
<property name="SessionFactory" ref="NHibernateSessionFactory"/>
</object>
<!-- Hibernate Template -->
<object id="HibernateTemplate" type="Spring.Data.NHibernate.Generic.HibernateTemplate">
<property name="SessionFactory" ref="NHibernateSessionFactory" />
<property name="TemplateFlushMode" value="Auto" />
<property name="CacheQueries" value="true" />
</object>
<object id="uDao"
type="Work.Dao.UserDao,Work" />
<object id="uMng"
type="Work.Managers.UserManager,
Work" />
<object id="userDao" type="Work.Dao.UserDao, Work" init-method="init" destroy-method="destroy">
<property name="HibernateTemplate" ref="HibernateTemplate"/>
</object>
</objects>
摘要道
namespace Work.Dao
{
public class AbstractDao<T> : HibernateDaoSupport where T : class
{
private ISessionFactory GetSessionFactory()
{
return null;
}
[Transaction(ReadOnly = true)]
public IList<T> GetAll()
{
return
HibernateTemplate.Find<T>("select * from user");
}
}
}
用户Dao.cs
namespace Work.Dao
{
public class UserDao : AbstractDao<User>
{
}
}
User.hbm.xml
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="Work"
namespace="Work.Domains">
<class name="User" table="UserAccount">
<id name="UserId">
<generator class="native" />
</id>
<property name="FirstName" />
<property name="LastName" />
</class>
</hibernate-mapping>
User.hbm.xml嵌入资源和d ONT在目录中复制出 Spring.Net是contenu始终复制
这里我的库
-
+Antlr3.Runtime
+Common.Logging
+Iesi.Collections
+LinFu.DynamicProxy
+log4net
+NHibernate
+NHibernate.DomainModel
+NHibernate.Test
+Spring.Aop
+Spring.Core
+Spring.Data
+Spring.Data.NHibernate21
我的错误是,当我经过那里ContextRegistry.GetContext()
namespace Work.Managers
{
public class UserManager
{
public IList<User> GetAll()
{
UserDao userDao = (UserDao)ContextRegistry.GetContext().GetObject("userDao");// (UserDao)Utility.AppCtx("uDao");
IList<User> List = userDao.GetAll();
return List;
}
}
}
ExceptionMessage>Error creating object with name 'NHibernateSessionFactory' defined in 'file [C:\Users\marie\Documents\Visual Studio 2013\Projects\Test\Test4\Work\Work\SpringSetup.xml] line 15' : Initialization of object failed : Instance failure.</ExceptionMessage><ExceptionType>Spring.Objects.Factory.ObjectCreationException</ExceptionType>
问候
那么什么代码的一部分实际上是给你的麻烦?如果异常信息是英文的,这也会有所帮助 - 我相当肯定这里的大多数人不会说法语。 – aevitas
我编辑,谢谢 – inforho
我的连接字符串像Najeria后说我有一个新的错误:创建上下文'spring.root'时出错:需要sessionFactory或hibernateTemplate – inforho