G
Gast2
Gast
Hallo zusammen,
ich hätte nochmal ein paar fragen zu spring und hibernate zusammen...
wenn ich meine anwendung starte bekomme ich folgenden consolen log...
jetzt rufe ich folgende methode auf
und bekomm folgende Exception, die mir nichts sagt
Das komische ist das mein Unit test aber funktioniert und den GLEICHEN service aufruft...
Ausgabe
Sieht jemand einen Fehler?
Die 2te Frage wäre, wenn ich einen Kunde suche den es nicht gibt, bekomme ich dann eine Exception geworfen dass ich dem Anwender sagen kann Kunde nicht vorhanden oder sowas??
Danke schon mal
ich hätte nochmal ein paar fragen zu spring und hibernate zusammen...
wenn ich meine anwendung starte bekomme ich folgenden consolen log...
Java:
09.12.2009 23:35:56 org.springframework.context.support.AbstractApplicationContext prepareRefresh
INFO: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@1359c1b: startup date [Wed Dec 09 23:35:56 CET 2009]; root of context hierarchy
09.12.2009 23:35:56 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource [applicationContext.xml]
09.12.2009 23:35:56 org.springframework.core.io.support.PropertiesLoaderSupport loadProperties
INFO: Loading properties file from class path resource [jdbc.properties]
09.12.2009 23:35:56 org.springframework.context.support.AbstractApplicationContext$BeanPostProcessorChecker postProcessAfterInitialization
INFO: Bean 'dataSource' is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
09.12.2009 23:35:57 org.springframework.orm.hibernate3.LocalSessionFactoryBean buildSessionFactory
INFO: Building new Hibernate SessionFactory
09.12.2009 23:35:57 org.springframework.context.support.AbstractApplicationContext$BeanPostProcessorChecker postProcessAfterInitialization
INFO: Bean 'sessionFactory' is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
09.12.2009 23:35:57 org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@e53220: defining beans [org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.internalPersistenceAnnotationProcessor,org.springframework.aop.config.internalAutoProxyCreator,org.springframework.transaction.annotation.AnnotationTransactionAttributeSource#0,org.springframework.transaction.interceptor.TransactionInterceptor#0,org.springframework.transaction.config.internalTransactionAdvisor,txManager,org.springframework.beans.factory.config.PropertyPlaceholderConfigurer#0,org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor#0,dataSource,sessionFactory,kundenDAO,kundenService,kunde]; root of factory hierarchy
09.12.2009 23:35:58 org.springframework.orm.hibernate3.HibernateTransactionManager afterPropertiesSet
INFO: Using DataSource [org.apache.commons.dbcp.BasicDataSource@aa3518] of Hibernate SessionFactory for HibernateTransactionManager
jetzt rufe ich folgende methode auf
Java:
kunde = ServiceManager.getInstance().getKundenService().searchKundeById(Long.valueOf(1));
System.out.println(kunde.getName());
Java:
public class ServiceManager {
private static ServiceManager instance;
private ApplicationContext ctx;
private ServiceManager () {
ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
}
public static synchronized ServiceFactory getInstance() {
if(instance == null) instance = new ServiceManager ();
return instance;
}
public KundenService getKundenService(){
return ctx.getBean("kundenService", KundenService.class);
}
}
und bekomm folgende Exception, die mir nichts sagt
Java:
org.hibernate.LazyInitializationException: could not initialize proxy - no Session
at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:86)
at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:140)
at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:190)
at dbobjects.impl.KundeHibernateImpl_$$_javassist_0.getName(KundeHibernateImpl_$$_javassist_0.java)
Das komische ist das mein Unit test aber funktioniert und den GLEICHEN service aufruft...
Java:
@ContextConfiguration(locations={"/applicationContext.xml"})
@TransactionConfiguration(defaultRollback=true)
public class KundenServiceTest extends AbstractTransactionalJUnit4SpringContextTests {
@Autowired
private KundenService kundenService;
@Test
public void testSerchKunde() throws Exception {
Kunde kunde = null;
kunde = kundenService.searchKundeById(Long.valueOf(1));
System.out.println(kunde.getName());
assertEquals(Long.valueOf(1), kunde.getId());
}
}
Ausgabe
Java:
09.12.2009 23:50:06 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource [applicationContext.xml]
09.12.2009 23:50:06 org.springframework.context.support.AbstractApplicationContext prepareRefresh
INFO: Refreshing org.springframework.context.support.GenericApplicationContext@1e4457d: startup date [Wed Dec 09 23:50:06 CET 2009]; root of context hierarchy
09.12.2009 23:50:06 org.springframework.core.io.support.PropertiesLoaderSupport loadProperties
INFO: Loading properties file from class path resource [jdbc.properties]
09.12.2009 23:50:06 org.springframework.context.support.AbstractApplicationContext$BeanPostProcessorChecker postProcessAfterInitialization
INFO: Bean 'dataSource' is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
09.12.2009 23:50:07 org.springframework.orm.hibernate3.LocalSessionFactoryBean buildSessionFactory
INFO: Building new Hibernate SessionFactory
09.12.2009 23:50:07 org.springframework.context.support.AbstractApplicationContext$BeanPostProcessorChecker postProcessAfterInitialization
INFO: Bean 'sessionFactory' is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
09.12.2009 23:50:07 org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@6ac461: defining beans [org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.internalPersistenceAnnotationProcessor,org.springframework.aop.config.internalAutoProxyCreator,org.springframework.transaction.annotation.AnnotationTransactionAttributeSource#0,org.springframework.transaction.interceptor.TransactionInterceptor#0,org.springframework.transaction.config.internalTransactionAdvisor,transactionManager,org.springframework.beans.factory.config.PropertyPlaceholderConfigurer#0,org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor#0,dataSource,sessionFactory,kundenDAO,kundenService,kunde]; root of factory hierarchy
09.12.2009 23:50:08 org.springframework.orm.hibernate3.HibernateTransactionManager afterPropertiesSet
INFO: Using DataSource [org.apache.commons.dbcp.BasicDataSource@2515] of Hibernate SessionFactory for HibernateTransactionManager
09.12.2009 23:50:08 org.springframework.test.context.transaction.TransactionalTestExecutionListener startNewTransaction
INFO: Began transaction (1): transaction manager [org.springframework.orm.hibernate3.HibernateTransactionManager@a68fd8]; rollback [true]
Hibernate: select kundehiber0_.id as id0_0_, kundehiber0_.bonus as bonus0_0_, kundehiber0_.email as email0_0_, kundehiber0_.geb as geb0_0_, kundehiber0_.handynummer as handynum5_0_0_, kundehiber0_.name as name0_0_, kundehiber0_.ort as ort0_0_, kundehiber0_.plz as plz0_0_, kundehiber0_.strasse as strasse0_0_, kundehiber0_.tel as tel0_0_, kundehiber0_.vorname as vorname0_0_ from Kunde kundehiber0_ where kundehiber0_.id=?
Dennis
09.12.2009 23:50:08 org.springframework.test.context.transaction.TransactionalTestExecutionListener endTransaction
INFO: Rolled back transaction after test execution for test context [[TestContext@13fba1 testClass = KundenServiceTest, locations = array<String>['classpath:/applicationContext.xml'], testInstance = kunde.KundenServiceTest@1ed27e4, testMethod = testSerchKunde@KundenServiceTest, testException = [null]]]
Sieht jemand einen Fehler?
Die 2te Frage wäre, wenn ich einen Kunde suche den es nicht gibt, bekomme ich dann eine Exception geworfen dass ich dem Anwender sagen kann Kunde nicht vorhanden oder sowas??
Danke schon mal
Zuletzt bearbeitet von einem Moderator: