-
maven 搭建多模块spring项目 无法读取springframework.orm.hibernate4.LocalSessionFactoryBean5
maven依赖如下webApp依赖commApp与daoApp两个项目(这两个项目均是spring项目)
com.celul.parent:webApp:war:1.0
+- com.celul.parent:commApp:jar:1.0:compile
+- com.celul.parent:daoApp:jar:1.0:compile
单元测试springApp与daoApp无问题。
但在webApp中测试却得不到LocalSessionFactoryBean
daoApp中的spring配置文件:applicationContext-dao.xml<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd " default-autowire="default"> <context:property-placeholder location="classpath:jdbc.properties" /> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${driverClassName}" /> <property name="url" value="${url}" /> <property name="username" value="${uname}" /> <property name="password" value="${password}" /> <property name="initialSize" value="${initialSize}" /> <property name="maxActive" value="${maxActive}" /> <property name="maxIdle" value="${maxIdle}" /> <property name="minIdle" value="${minIdle}" /> </bean> <!-- jdbcTemplate --> <!-- <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"><constructor-arg ref="dataSource"></constructor-arg></bean> <bean id="userDao" class="com.celul.daoApp.dao.JdbcUserDao"><constructor-arg ref="jdbcTemplate"></constructor-arg></bean> --> <!-- hibernate4 sessionFactory --> <bean id="sf" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="mappingResources"> <list><value>hbm/user.hbm.xml</value></list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> <prop key="hibernate.show_sql">true</prop> </props> </property> </bean> <bean id="userDao" class="com.celul.daoApp.dao.HibernateUserDao"><constructor-arg ref="sf"></constructor-arg></bean> <bean id="userService" class="com.celul.daoApp.service.UserServiceImpl"><property name="ud" ref="userDao"></property></bean> <bean id="txManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"> <property name="sessionFactory" ref="sf"/> </bean> <tx:annotation-driven transaction-manager="txManager"/> </beans>
commApp中的spring配置文件:applicationContext-comm.xml<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd" default-autowire="default"> <!-- Root Context: defines shared resources visible to all other web components --> <bean id="commHelper" class="com.celul.springApp.net.SnmpComm"> </bean> <bean id="snmpAop" class="com.celul.springApp.mainMgr.CommAop"></bean> <aop:config> <aop:aspect ref="snmpAop"> <aop:pointcut expression="execution(* com.celul.springApp.net.SnmpComm.*(..))" id="comm"/> <aop:before method="checkStatus" pointcut-ref="comm"/> <aop:before method="logParams" pointcut-ref="comm"/> <aop:after-throwing method="dealThrow" pointcut-ref="comm"/> <aop:around method="aroundTime" pointcut-ref="comm"/> </aop:aspect> </aop:config> </beans>
webApp中的测试代码package com.celul.webApp.action; import junit.framework.TestCase; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.celul.daoApp.entity.User; import com.celul.daoApp.service.UserService; import com.celul.springApp.exception.AppException; import com.celul.springApp.net.impl.CommHelp; public class WebServletTest extends TestCase { UserService us; CommHelp comm; ApplicationContext context; public WebServletTest(){ context = new ClassPathXmlApplicationContext(new String[]{ "classpath:applicationContext-dao.xml", "classpath:applicationContext-comm.xml"}); us = (UserService) context.getBean("userService"); comm = (CommHelp) context.getBean("commHelper"); } public void testGetAll() { System.out.println(us.queryAll().size()); } public void testAdd() { User u = new User(); u.setEmail("abc@as.com"); u.setFirstName("fn"); u.setLastName("ln"); u.setPhone("1234324"); System.out.println(us.add(u)); } public void testDel() { System.out.println(us.delById(14)); } public void testUpdate() { User u = new User(); u.setId(3); u.setEmail("abc@as.com"); u.setFirstName("fn"); u.setLastName("ln"); u.setPhone("1234324"); System.out.println(us.Update(u)); } public void testCommGet(){ try { System.out.println(comm.get("1.3.6.1.4.1.12321.1.1.1.4.0")); } catch (AppException e) { e.printStackTrace(); } } }
错误代码junit.framework.AssertionFailedError: Exception in constructor: testGetAll (org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sf' defined in class path resource [applicationContext-dao.xml]: Invocation of init method failed; nested exception is java.lang.NoSuchFieldError: TRACE at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1553)
我要是把application-dao.xml中的hibernate访问改成jdbcTemplate访问,则不会报错。
问题补充:第六行编辑错误:
“单元测试springApp与daoApp无问题。”修改为
“单元测试commApp与daoApp无问题。”
问题补充:将webApp对commApp的依赖取消后,webApp的测试WebServletTest(仅测试userService)也能成功。
<!-- <dependency>
<groupId>com.celul.parent</groupId>
<artifactId>commApp</artifactId>
<version>1.0</version>
</dependency> -->
<dependency>
<groupId>com.celul.parent</groupId>
<artifactId>daoApp</artifactId>
<version>1.0</version>
</dependency>2014年4月21日 15:09
目前还没有答案
相关推荐
- org.springframework.orm.hibernate4.LocalSessionFactoryBean造成的 Unsupported major.minor version 52.0
- Cannot find class [org.springframework.orm.hibernate5.LocalSessionFactoryBean]
- org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
- Spring集成Hibernate 理解LocalSessionFactoryBean
- org.springframework.orm.hibernate3
相关推荐
### 关于 "org.springframework.orm.hibernate3.LocalSessionFactoryBean" 未找到问题的知识点解析 #### 一、问题背景 在开发基于Spring与Hibernate整合的应用时,可能会遇到“`org.springframework.orm.hibernate...
<beans:bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"> <!-- Hibernate配置 --> <beans:bean id="hibernateTemplate" class="org.springframework.orm....
<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"> <!-- Hibernate配置 --> <bean id="transactionManager" class="org.springframework.orm.hibernate5....
import org.springframework.orm.hibernate5.LocalSessionFactoryBean; import javax.sql.DataSource; @Configuration public class HibernateConfig { @Autowired private DataSource dataSource; @Bean ...
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect <prop key="hibernate.show_sql">...
<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"> <property name="packagesToScan" value="com.example.entity"/> <prop key="hibernate.dialect">org....
<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"> <property name="packagesToScan" value="com.example.model"/> <prop key="hibernate.dialect">org....
<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"> <property name="packagesToScan" value="com.example.model"/> <prop key="hibernate.dialect">org....
<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"> <property name="configLocation" value="classpath:hibernate.cfg.xml"/> ...
<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"> <property name="packagesToScan" value="com.yourpackage.models"/> <prop key="hibernate.dialect">...
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> <property name="packagesToScan" value="com.example.entity"/> <prop key="hibernate.dialect">org....
<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"> <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect <prop key="hibernate.hbm2ddl....
<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"> <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect <!-- 其他 Hibernate 配置 --> ...
<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"> <value>User.hbm.xml <value>Order.hbm.xml <prop key="hibernate.dialect">org.hibernate....
<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"> <property name="packagesToScan" value="com.example.infosystem.entity"/> <prop key="hibernate....
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> <property name="configLocation" value="classpath:hibernate.cfg.xml"/> ...
<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"> ... ``` 3. **配置Hibernate**:在Hibernate配置中,我们需要指定实体类的位置,数据库连接信息,以及...
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="configLocation" value="classpath:hibernate.cfg.xml" /> ...
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"><ref bean="dataSource"/> <prop key="hibernate.dialect">org.hibernate....