PDA

View Full Version : error instantiating 'spring.root'



levis
04-26-2007, 05:06 AM
i found this error when i doing a test

error Part 1
Dimas2.Dao.NHibernate.Test.HibernateReferenceDaoTe st.deleteReference : System.Configuration.ConfigurationErrorsException : Error instantiating context 'spring.root'.
----> Spring.Objects.FatalObjectException : Cannot instantiate Type [Spring.Context.Support.XmlApplicationContext] using ctor [Void .ctor(System.String, Boolean, System.String[])] : 'Exception has been thrown by the target of an invocation.'
----> System.Reflection.TargetInvocationException : Exception has been thrown by the target of an invocation.
----> Spring.Objects.Factory.ObjectCreationException : Error thrown by a dependency of object 'HibernateReferenceDaoTest' defined in 'file [D:\neo\source\Code2\Dimas2.Dao.NHibernate.Test\bin \Debug\Services.xml]' : Initialization of object failed : The following types may not be used as proxies:
Dimas2.Domain.Distributor: method get_code should be virtual
Dimas2.Domain.Distributor: method set_code should be virtual
Dimas2.Domain.Distributor: method get_name should be virtual
Dimas2.Domain.Distributor: method set_name should be virtual
Dimas2.Domain.Distributor: method get_telp1 should be virtual
Dimas2.Domain.Distributor: method set_telp1 should be virtual
Dimas2.Domain.Distributor: method get_fax2 should be virtual
Dimas2.Domain.Distributor: method set_fax2 should be virtual
Dimas2.Domain.Distributor: method get_fax1 should be virtual
Dimas2.Domain.Distributor: method set_fax1 should be virtual
Dimas2.Domain.Distributor: method get_telp2 should be virtual
Dimas2.Domain.Distributor: method set_telp2 should be virtual
Dimas2.Domain.Distributor: method get_email should be virtual
Dimas2.Domain.Distributor: method set_email should be virtual
Dimas2.Domain.Distributor: method get_regSalesManager should be virtual
Dimas2.Domain.Distributor: method set_regSalesManager should be virtual
Dimas2.Domain.Distributor: method get_salesDevOfficer should be virtual
Dimas2.Domain.Distributor: method set_salesDevOfficer should be virtual
Dimas2.Domain.Distributor: method get_distributorAdminSupport should be virtual
Dimas2.Domain.Distributor: method set_distributorAdminSupport should be virtual
Dimas2.Domain.Distributor: method get_npwpNo should be virtual
Dimas2.Domain.Distributor: method set_npwpNo should be virtual
Dimas2.Domain.Distributor: method get_npwpAddress should be virtual
Dimas2.Domain.Distributor: method set_npwpAddress should be virtual
Dimas2.Domain.Distributor: method get_tglNPWP should be virtual
Dimas2.Domain.Distributor: method set_tglNPWP should be virtual
Dimas2.Domain.Distributor: method get_npwpSignature should be virtual
Dimas2.Domain.Distributor: method set_npwpSignature should be virtual
Dimas2.Domain.Distributor: method get_jabatan should be virtual
Dimas2.Domain.Distributor: method set_jabatan should be virtual
Dimas2.Domain.Distributor: method get_PKPNo should be virtual
Dimas2.Domain.Distributor: method set_PKPNo should be virtual
Dimas2.Domain.Distributor: method get_tglPKP should be virtual
Dimas2.Domain.Distributor: method set_tglPKP should be virtual
Dimas2.Domain.Distributor: method get_bankInfo should be virtual
Dimas2.Domain.Distributor: method set_bankInfo should be virtual
Dimas2.Domain.Distributor: method get_isActive should be virtual
Dimas2.Domain.Distributor: method set_isActive should be virtual
Dimas2.Domain.Distributor: method get_code should be virtual
Dimas2.Domain.Distributor: method set_code should be virtual
Dimas2.Domain.Distributor: method get_name should be virtual
Dimas2.Domain.Distributor: method set_name should be virtual
Dimas2.Domain.Distributor: method get_telp1 should be virtual
Dimas2.Domain.Distributor: method set_telp1 should be virtual
Dimas2.Domain.Distributor: method get_fax2 should be virtual
Dimas2.Domain.Distributor: method set_fax2 should be virtual
Dimas2.Domain.Distributor: method get_fax1 should be virtual
Dimas2.Domain.Distributor: method set_fax1 should be virtual
Dimas2.Domain.Distributor: method get_telp2 should be virtual
Dimas2.Domain.Distributor: method set_telp2 should be virtual
Dimas2.Domain.Distributor: method get_email should be virtual
Dimas2.Domain.Distributor: method set_email should be virtual
Dimas2.Domain.Distributor: method get_regSalesManager should be virtual
Dimas2.Domain.Distributor: method set_regSalesManager should be virtual
Dimas2.Domain.Distributor: method get_salesDevOfficer should be virtual
Dimas2.Domain.Distributor: method set_salesDevOfficer should be virtual
Dimas2.Domain.Distributor: method get_distributorAdminSupport should be virtual
Dimas2.Domain.Distributor: method set_distributorAdminSupport should be virtual
Dimas2.Domain.Distributor: method get_npwpNo should be virtual
Dimas2.Domain.Distributor: method set_npwpNo should be virtual
Dimas2.Domain.Distributor: method get_npwpAddress should be virtual
Dimas2.Domain.Distributor: method set_npwpAddress should be virtual
Dimas2.Domain.Distributor: method get_tglNPWP should be virtual
Dimas2.Domain.Distributor: method set_tglNPWP should be virtual
Dimas2.Domain.Distributor: method get_npwpSignature should be virtual
Dimas2.Domain.Distributor: method set_npwpSignature should be virtual
Dimas2.Domain.Distributor: method get_jabatan should be virtual
Dimas2.Domain.Distributor: method set_jabatan should be virtual
Dimas2.Domain.Distributor: method get_PKPNo should be virtual
Dimas2.Domain.Distributor: method set_PKPNo should be virtual
Dimas2.Domain.Distributor: method get_tglPKP should be virtual
Dimas2.Domain.Distributor: method set_tglPKP should be virtual
Dimas2.Domain.Distributor: method get_bankInfo should be virtual
Dimas2.Domain.Distributor: method set_bankInfo should be virtual
Dimas2.Domain.Distributor: method get_isActive should be virtual
Dimas2.Domain.Distributor: method set_isActive should be virtual
Dimas2.Domain.Reference: method get_referenceSystemNo should be virtual
Dimas2.Domain.Reference: method set_referenceSystemNo should be virtual
Dimas2.Domain.Reference: method get_referenceCategory should be virtual
Dimas2.Domain.Reference: method set_referenceCategory should be virtual
Dimas2.Domain.Reference: method get_referenceCode should be virtual
Dimas2.Domain.Reference: method set_referenceCode should be virtual
Dimas2.Domain.Reference: method get_referenceDescription should be virtual
Dimas2.Domain.Reference: method set_referenceDescription should be virtual
Dimas2.Domain.Reference: method get_referenceActive should be virtual
Dimas2.Domain.Reference: method set_referenceActive should be virtual
Dimas2.Domain.Reference: method get_referenceSystemNo should be virtual
Dimas2.Domain.Reference: method set_referenceSystemNo should be virtual
Dimas2.Domain.Reference: method get_referenceCategory should be virtual
Dimas2.Domain.Reference: method set_referenceCategory should be virtual
Dimas2.Domain.Reference: method get_referenceCode should be virtual
Dimas2.Domain.Reference: method set_referenceCode should be virtual
Dimas2.Domain.Reference: method get_referenceDescription should be virtual
Dimas2.Domain.Reference: method set_referenceDescription should be virtual
Dimas2.Domain.Reference: method get_referenceActive should be virtual
Dimas2.Domain.Reference: method set_referenceActive should be virtual
while resolving 'referenceDao' to 'referenceDao' defined in 'file [D:\neo\source\Code2\Dimas2.Dao.NHibernate.Test\bin \Debug\Dao.xml]'
while resolving 'SessionFactory' to 'SessionFactory' defined in 'file [D:\neo\source\Code2\Dimas2

could somebody help me?

Thanks for the attention

levis
04-26-2007, 05:07 AM
.Dao.NHibernate.Test\bin\Debug\Dao.xml]'
----> NHibernate.InvalidProxyTypeException : The following types may not be used as proxies:
Dimas2.Domain.Distributor: method get_code should be virtual
Dimas2.Domain.Distributor: method set_code should be virtual
Dimas2.Domain.Distributor: method get_name should be virtual
Dimas2.Domain.Distributor: method set_name should be virtual
Dimas2.Domain.Distributor: method get_telp1 should be virtual
Dimas2.Domain.Distributor: method set_telp1 should be virtual
Dimas2.Domain.Distributor: method get_fax2 should be virtual
Dimas2.Domain.Distributor: method set_fax2 should be virtual
Dimas2.Domain.Distributor: method get_fax1 should be virtual
Dimas2.Domain.Distributor: method set_fax1 should be virtual
Dimas2.Domain.Distributor: method get_telp2 should be virtual
Dimas2.Domain.Distributor: method set_telp2 should be virtual
Dimas2.Domain.Distributor: method get_email should be virtual
Dimas2.Domain.Distributor: method set_email should be virtual
Dimas2.Domain.Distributor: method get_regSalesManager should be virtual
Dimas2.Domain.Distributor: method set_regSalesManager should be virtual
Dimas2.Domain.Distributor: method get_salesDevOfficer should be virtual
Dimas2.Domain.Distributor: method set_salesDevOfficer should be virtual
Dimas2.Domain.Distributor: method get_distributorAdminSupport should be virtual
Dimas2.Domain.Distributor: method set_distributorAdminSupport should be virtual
Dimas2.Domain.Distributor: method get_npwpNo should be virtual
Dimas2.Domain.Distributor: method set_npwpNo should be virtual
Dimas2.Domain.Distributor: method get_npwpAddress should be virtual
Dimas2.Domain.Distributor: method set_npwpAddress should be virtual
Dimas2.Domain.Distributor: method get_tglNPWP should be virtual
Dimas2.Domain.Distributor: method set_tglNPWP should be virtual
Dimas2.Domain.Distributor: method get_npwpSignature should be virtual
Dimas2.Domain.Distributor: method set_npwpSignature should be virtual
Dimas2.Domain.Distributor: method get_jabatan should be virtual
Dimas2.Domain.Distributor: method set_jabatan should be virtual
Dimas2.Domain.Distributor: method get_PKPNo should be virtual
Dimas2.Domain.Distributor: method set_PKPNo should be virtual
Dimas2.Domain.Distributor: method get_tglPKP should be virtual
Dimas2.Domain.Distributor: method set_tglPKP should be virtual
Dimas2.Domain.Distributor: method get_bankInfo should be virtual
Dimas2.Domain.Distributor: method set_bankInfo should be virtual
Dimas2.Domain.Distributor: method get_isActive should be virtual
Dimas2.Domain.Distributor: method set_isActive should be virtual
Dimas2.Domain.Distributor: method get_code should be virtual
Dimas2.Domain.Distributor: method set_code should be virtual
Dimas2.Domain.Distributor: method get_name should be virtual
Dimas2.Domain.Distributor: method set_name should be virtual
Dimas2.Domain.Distributor: method get_telp1 should be virtual
Dimas2.Domain.Distributor: method set_telp1 should be virtual
Dimas2.Domain.Distributor: method get_fax2 should be virtual
Dimas2.Domain.Distributor: method set_fax2 should be virtual
Dimas2.Domain.Distributor: method get_fax1 should be virtual
Dimas2.Domain.Distributor: method set_fax1 should be virtual
Dimas2.Domain.Distributor: method get_telp2 should be virtual
Dimas2.Domain.Distributor: method set_telp2 should be virtual
Dimas2.Domain.Distributor: method get_email should be virtual
Dimas2.Domain.Distributor: method set_email should be virtual
Dimas2.Domain.Distributor: method get_regSalesManager should be virtual
Dimas2.Domain.Distributor: method set_regSalesManager should be virtual
Dimas2.Domain.Distributor: method get_salesDevOfficer should be virtual
Dimas2.Domain.Distributor: method set_salesDevOfficer should be virtual
Dimas2.Domain.Distributor: method get_distributorAdminSupport should be virtual
Dimas2.Domain.Distributor: method set_distributorAdminSupport should be virtual
Dimas2.Domain.Distributor: method get_npwpNo should be virtual
Dimas2.Domain.Distributor: method set_npwpNo should be virtual
Dimas2.Domain.Distributor: method get_npwpAddress should be virtual
Dimas2.Domain.Distributor: method set_npwpAddress should be virtual
Dimas2.Domain.Distributor: method get_tglNPWP should be virtual
Dimas2.Domain.Distributor: method set_tglNPWP should be virtual
Dimas2.Domain.Distributor: method get_npwpSignature should be virtual
Dimas2.Domain.Distributor: method set_npwpSignature should be virtual
Dimas2.Domain.Distributor: method get_jabatan should be virtual
Dimas2.Domain.Distributor: method set_jabatan should be virtual
Dimas2.Domain.Distributor: method get_PKPNo should be virtual
Dimas2.Domain.Distributor: method set_PKPNo should be virtual
Dimas2.Domain.Distributor: method get_tglPKP should be virtual
Dimas2.Domain.Distributor: method set_tglPKP should be virtual
Dimas2.Domain.Distributor: method get_bankInfo should be virtual
Dimas2.Domain.Distributor: method set_bankInfo should be virtual
Dimas2.Domain.Distributor: method get_isActive should be virtual
Dimas2.Domain.Distributor: method set_isActive should be virtual
Dimas2.Domain.Reference: method get_referenceSystemNo should be virtual
Dimas2.Domain.Reference: method set_referenceSystemNo should be virtual
Dimas2.Domain.Reference: method get_referenceCategory should be virtual
Dimas2.Domain.Reference: method set_referenceCategory should be virtual
Dimas2.Domain.Reference: method get_referenceCode should be virtual
Dimas2.Domain.Reference: method set_referenceCode should be virtual
Dimas2.Domain.Reference: method get_referenceDescription should be virtual
Dimas2.Domain.Reference: method set_referenceDescription should be virtual
Dimas2.Domain.Reference: method get_referenceActive should be virtual
Dimas2.Domain.Reference: method set_referenceActive should be virtual
Dimas2.Domain.Reference: method get_referenceSystemNo should be virtual
Dimas2.Domain.Reference: method set_referenceSystemNo should be virtual
Dimas2.Domain.Reference: method get_referenceCategory should be virtual
Dimas2.Domain.Reference: method set_referenceCategory should be virtual
Dimas2.Domain.Reference: method get_referenceCode should be virtual
Dimas2.Domain.Reference: method set_referenceCode should be virtual
Dimas2.Domain.Reference: method get_referenceDescription should be virtual
Dimas2.Domain.Reference: method set_referenceDescription should be virtual
Dimas2.Domain.Reference: method get_referenceActive should be virtual
Dimas2.Domain.Reference: method set_referenceActive should be virtual

Erich Eichinger
04-26-2007, 05:43 AM
Hi,

can you post your service.xml + dao.xml here as attachment?

-Erich

levis
04-26-2007, 07:00 AM
this dao.xml
<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net"
xmlns:db="http://www.springframework.net/database">

<!-- Referenced by main application context configuration file -->
<description>
The Dimas object definitions for the Data Access Objects.
</description>

<!-- Property placeholder configurer for database settings -->
<object type="Spring.Objects.Factory.Config.PropertyPlaceholderC onfigurer, Spring.Core">
<property name="ConfigSections" value="databaseSettings"/>
</object>

<!-- Database and NHibernate Configuration -->
<db:dbProvider id="DbProvider"
provider="SqlServer-2.0"
connectionString="Data Source=${db.datasource};Database=${db.database};Us er ID=${db.user};Password=${db.password};Trusted_Conn ection=False"/>

<!--
<object id="DbProvider" type="Spring.Data.Support.SqlProvider, Spring.Data">
<property name="ConnectionString"
value="Data Source=${db.datasource};Database=${db.database};Us er ID=${db.user};Password=${db.password};Trusted_Conn ection=False"/>
</object>
-->

<object id="SessionFactory" type="Spring.Data.NHibernate.LocalSessionFactoryObject, Spring.Data.NHibernate12">
<property name="DbProvider" ref="DbProvider"/>
<property name="MappingAssemblies">
<list>
<value>Dimas2.Dao.NHibernate</value>
</list>
</property>
<property name="HibernateProperties">
<dictionary>

<entry key="hibernate.connection.provider"
value="NHibernate.Connection.DriverConnectionProvider"/>

<entry key="hibernate.dialect"
value="NHibernate.Dialect.MsSql2005Dialect"/>

<entry key="hibernate.connection.driver_class"
value="NHibernate.Driver.SqlClientDriver"/>
</dictionary>
</property>
</object>


<object id="HibernateTransactionManager"
type="Spring.Data.NHibernate.HibernateTransactionManager , Spring.Data.NHibernate12">
<property name="DbProvider" ref="DbProvider"/>
<property name="SessionFactory" ref="SessionFactory"/>

</object>


<!-- Data Access Objects -->
<!--<object id="distributorDao" type="Dimas2.Dao.NHibernate.HibernateDistributorDao, Dimas2.Dao.NHibernate">
<property name="SessionFactory" ref="SessionFactory"/>
</object>-->

<object id="referenceDao" type="Dimas2.Dao.NHibernate.HibernateReferenceDao, Dimas2.Dao.NHibernate">
<property name="SessionFactory" ref="SessionFactory"/>
</object>

</objects>


service.xml

<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net">
<!-- Referenced by main application context configuration file -->
<description>
The Dimas2 service layer definitions
</description>

<!-- Property placeholder configurer for database settings -->

<object id="HibernateReferenceDaoTest" type="Dimas2.Dao.NHibernate.Test.HibernateReferenceDaoTe st, Dimas2.Dao.NHibernate.Test">
<property name="referenceDao" ref="referenceDao"/>
</object>
<!--<object id="HibernateDistributorDaoTest" type="Dimas2.Dao.NHibernate.Test.HibernateDistributorDao Test, Dimas2.Dao.NHibernate.Test">
<property name="distributorDao" ref="distributorDao"/>
</object>-->
<!--
<object id="ShippingService" type="Spring.Northwind.Service.FedExShippingService, Spring.Northwind.Service">

</object> -->

<!--
<import resource="DeclarativeServicesAttributeDriven.xml"/>
-->

<!-- didn't configure correctly yet - don't use
<import resource="DeclarativeServicesObjectNameDriven.xml"/>
-->

<import resource="DeclarativeServicesTxProxyFactoryDriven.xml"/>

</objects>

Erich Eichinger
04-26-2007, 07:30 AM
Hi,

I'm no hibernate expert - but since the errormessage comes from nhibernate: Did you try to do what the errormessage is saying - marking the properties as "virtual"?

I guess this is because NHibernate is wrapping your entity classes with interception code (e.g. for tracing object modifications) and therefore needs to derive your entity classes and override the property-methods

-Erich

levis
04-26-2007, 07:42 AM
thanks for information
it' solve

regard's


Levis