Hi All,
I am using spring-hibernate in my application and IDE as eclipse/myeclipse. I have created the mappings for the huge database(about 1000+ tables). This is done using myEclipse hibernate plugin.
I have configured an application in OC4J (10.1.3.0.0). On starting the of the application server all the spring-beans are loaded. Configuration related to the ORM as follows
[COLOR="Blue"]<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>datasource.properties</value>
<value>application.properties</value>
</list>
</property>
</bean>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName">
<value>${jdbc.driverClassName}</value>
</property>
<property name="url">
<value>${jdbc.url}</value>
</property>
<property name="username">
<value>${jdbc.username}</value>
</property>
<property name="password">
<value>${jdbc.password}</value>
</property>
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean" >
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="mappingDirectoryLocations" >
<list>
<value>com/iba/ehis/dobj</value>
</list>
</property>
<property name="hibernateProperties" >
<props>
<prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
<prop key="hibernate.dialect">${hibernate.dialect}</prop>
<prop key="jta.UserTransaction">java:comp/UserTransaction</prop>
<prop key="hibernate.transaction.manager_lookup_class">org.hibernate.transaction.JOTMTransactionManagerLookup</prop>
<prop key="hibernate.transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</prop>
<prop key="hibernate.cache.provider_class">org.hibernate.cache.TreeCacheProvider</prop>
<prop key="hibernate.cache.use_query_cache">true</prop>
<prop key="hibernate.cache.use_second_level_cache">true</prop>
<prop key="hibernate.cache.use_structured_entries">true</prop>
<prop key="hibernate.generate_statistics">true</prop>
<prop key="hibernate.cache.use_minimal_puts">true</prop>
</props>
</property>
</bean>
...........................[/COLOR]
When I start the application server instance I am getting stack overflowerror. What could be the possible reason. Is there any configuration where i can restrict the class loading process to the required classes.
Error Stack Trace:
[COLOR="blue"]2006-11-02 09:00:27,435 WARN composite-id class does not override equals(): com.iba.ehis.dobj.OrImageHotspotLinkId
2006-11-02 09:00:27,435 WARN composite-id class does not override hashCode(): com.iba.ehis.dobj.OrImageHotspotLinkId
2006-11-02 09:00:27,545 INFO Destroying singletons in factory {org.springframework.beans.factory.support.DefaultListableBeanFactory defining beans [propertyConfigurer,dataSource,sessionFactory,JotmTransactionFactory,txManager,MethodLogger,PerformanceInterceptor,txInterceptor,org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator,simpleTrigger,cronTrigger,org.springframework.scheduling.quartz.SchedulerFactoryBean,tempCacheCleanup,permanentCacheCleanup,jmsFactory,communicationQueue,defaultQueue,printerQueue,jmsTemplate,jmsTransactionManager,baseMDP]; root of BeanFactory hierarchy}
2006-11-02 09:00:27,545 ERROR [NA:NA:NA]com.iba.framework.core.exception.ServiceLocatorException - Found unknown problem. Please check the log for details.
2006-11-02 09:00:27,545 DEBUG [NA:NA:NA]com.iba.framework.core.exception.ServiceLocatorException - Found unknown problem. Please check the log for details.
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [spring-orm.xml]: Invocation of init method failed; nested exception is java.lang.StackOverflowError
Caused by:
java.lang.StackOverflowError
at java.util.HashMap.get(HashMap.java:320)
at org.hibernate.cfg.Configuration$1.getIdentifierType(Configuration.java:1967)
at org.hibernate.type.EntityType.getIdentifierType(EntityType.java:226)
at org.hibernate.type.EntityType.getIdentifierOrUniqueKeyType(EntityType.java:236)
at org.hibernate.type.ManyToOneType.getColumnSpan(ManyToOneType.java:65)
at org.hibernate.type.ComponentType.getColumnSpan(ComponentType.java:84)
at org.hibernate.type.ManyToOneType.getColumnSpan(ManyToOneType.java:65)
at org.hibernate.type.ComponentType.getColumnSpan(ComponentType.java:84)
at org.hibernate.type.ManyToOneType.getColumnSpan(ManyToOneType.java:65)
at org.hibernate.type.ComponentType.getColumnSpan(ComponentType.java:84)
at org.hibernate.type.ManyToOneType.getColumnSpan(ManyToOneType.java:65)
at org.hibernate.type.ComponentType.getColumnSpan(ComponentType.java:84)
at org.hibernate.type.ManyToOneType.getColumnSpan(ManyToOneType.java:65)
at org.hibernate.type.ComponentType.getColumnSpan(ComponentType.java:84)
at org.hibernate.type.ManyToOneType.getColumnSpan(ManyToOneType.java:65)
at org.hibernate[/COLOR].type.ComponentType.getColumnSpan(ComponentType.java:84)
at org.hibernate.type.ManyToOneType.getColumnSpan(ManyToOneType.java:65)
at org.hibernate.type.ComponentType.getColumnSpan(ComponentType.java:84)
at org.hibernate.type.ManyToOneType.getColumnSpan(ManyToOneType.java:65)
at org.hibernate.type.ComponentType.getColumnSpan(ComponentType.java:84)
This is a very sensitive problem as far as my application is concenned. Pls Reply to this at the earliest.
Thanks in Advance,
Parimala
|