私はjavaconfig recent.Soを学習していますが、私のxml設定をjavaConfigに移そうとしていましたが、私はdb.Iからinforを照会するセッションを取得しようとすると、Tomcatで実行中のプロジェクトでエラーが発生しました。本当に混乱していました。spring-Hibernate3でjavaConfigを使用しようとするとsession.butだけの例外が発生する
ブログを読んで、インターネット上で考えられる理由を検索した後、トランザクションが正しく機能していないように見える可能性があります。ない場合 (ただし、エラーがトランザクションは、私はそれについては考えを持っていないwell.so働きを示して)
私は、コードを修正することができる方法右の仮定を得た場合?、私の問題の理由は何ですか?
助言があれば助かります。
(私の下手な英語のため申し訳ありませんが、私はそれがはるかにあなたを気にしないことを願っています。)
ここに私のJavaの設定コードです。
このクラスはRootApplicationContext
@Configuration
@EnableAspectJAutoProxy
@EnableTransactionManagement
@ComponentScan(basePackages = { "com.*" })
@PropertySources({ @PropertySource(value = "classpath:database.properties"),
@PropertySource(value = "classpath:hibernate.properties") })
@Import(value = { HibernateConfig.class, DruidConfig.class, TransactionConfig.class })
public class SpringContextConfig {
}
のために書かれているこれは、これは私がクラスに@Transactionlを入れている、サービスを管理する必要がある
@EnableTransactionManagement
public class TransactionConfig implements TransactionManagementConfigurer {
@Resource
SessionFactory sessionFactory;
@Resource
DataSource dataSource;
@Bean(name = "transactionManager")
public HibernateTransactionManager hibernateTransactionManager() {
HibernateTransactionManager txManager = new HibernateTransactionManager();
txManager.setDataSource(dataSource);
txManager.setSessionFactory(sessionFactory);
return txManager;
}
@Override
public PlatformTransactionManager annotationDrivenTransactionManager() {
return hibernateTransactionManager();
}
}
取引javaConfigある
@Service("locationService")
@Transactional(value="transactionManager")
public class LocationServiceImpl implements LocationService {
@Resource
SessionFactory sessionFactory;
@Resource(name = "locationDaoImp")
LocationDao dao;
@Override
public Location queryLocationById(String locationId) {
return dao.queryLocationById(locationId);
}
エラーが発生した後、私はdaoClassでデバッグしようとしています(吹き飛ぶ)が、私はいつもgら、私はメソッドgetCurrentSessionを(使用エラー)
Location location = (Location) sessionFactory.getCurrentSession().get(Location.class, locationId);
と、これは例外
Exception in thread "pool-1-thread-1" java.lang.NoClassDefFoundError: org/springframework/orm/ObjectRetrievalFailureException
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2957)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1210)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1690)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
at org.springframework.orm.hibernate3.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:539)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:373)
at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:420)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:257)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
at com.sun.proxy.$Proxy29.queryLocationById(Unknown Source)
at com.test.controller.LocationController$1.execute(LocationController.java:83)
at com.test.service.ExecuteTaskService$1.run(ExecuteTaskService.java:22)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)