0 0

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.hibernate3.LocalSessionFactoryBean

    ### 关于 "org.springframework.orm.hibernate3.LocalSessionFactoryBean" 未找到问题的知识点解析 #### 一、问题背景 在开发基于Spring与Hibernate整合的应用时,可能会遇到“`org.springframework.orm.hibernate...

    maven搭建项目:springmvc+hibernate

    &lt;beans:bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"&gt; &lt;!-- Hibernate配置 --&gt; &lt;beans:bean id="hibernateTemplate" class="org.springframework.orm....

    Maven下搭建Struts2+spring+hibernate框架

    &lt;bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"&gt; &lt;!-- Hibernate配置 --&gt; &lt;bean id="transactionManager" class="org.springframework.orm.hibernate5....

    springboot集成hibernate

    import org.springframework.orm.hibernate5.LocalSessionFactoryBean; import javax.sql.DataSource; @Configuration public class HibernateConfig { @Autowired private DataSource dataSource; @Bean ...

    Spring-hibernate结合使用全xml配置方式

    &lt;bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"&gt; &lt;prop key="hibernate.dialect"&gt;org.hibernate.dialect.MySQL5Dialect &lt;prop key="hibernate.show_sql"&gt;...

    java8+tomcat8+struts2.5+spring4.3+hibernate5.2框架搭建详细过程

    &lt;bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"&gt; &lt;property name="packagesToScan" value="com.example.entity"/&gt; &lt;prop key="hibernate.dialect"&gt;org....

    使用MyEclipse下整合Spring和Hibernate

    &lt;bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"&gt; &lt;property name="packagesToScan" value="com.example.model"/&gt; &lt;prop key="hibernate.dialect"&gt;org....

    Spring与hibernate 整合 简单示例

    &lt;bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"&gt; &lt;property name="packagesToScan" value="com.example.model"/&gt; &lt;prop key="hibernate.dialect"&gt;org....

    spring学习:hibernate orm集成

    &lt;bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"&gt; &lt;property name="configLocation" value="classpath:hibernate.cfg.xml"/&gt; ...

    spring+hibernate框架搭建demo

    &lt;bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"&gt; &lt;property name="packagesToScan" value="com.yourpackage.models"/&gt; &lt;prop key="hibernate.dialect"&gt;...

    spring3,hibernate4 配置声明式事务管理(annotation方式)

    &lt;bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"&gt; &lt;property name="packagesToScan" value="com.example.entity"/&gt; &lt;prop key="hibernate.dialect"&gt;org....

    Spring中使用Hibernate

    &lt;bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"&gt; &lt;prop key="hibernate.dialect"&gt;org.hibernate.dialect.MySQL5Dialect &lt;prop key="hibernate.hbm2ddl....

    spring hibernate demo

    &lt;bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"&gt; &lt;prop key="hibernate.dialect"&gt;org.hibernate.dialect.MySQL5Dialect &lt;!-- 其他 Hibernate 配置 --&gt; ...

    Spring/泛型Hibernate的实现

    &lt;bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"&gt; &lt;value&gt;User.hbm.xml &lt;value&gt;Order.hbm.xml &lt;prop key="hibernate.dialect"&gt;org.hibernate....

    现有Mysql数据库,写Spring + Hibernate的配置文件

    &lt;bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"&gt; &lt;property name="packagesToScan" value="com.example.infosystem.entity"/&gt; &lt;prop key="hibernate....

    spring配置sessionFactory(spring3.2.3+hibernate4.2.2)

    &lt;bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"&gt; &lt;property name="configLocation" value="classpath:hibernate.cfg.xml"/&gt; ...

    基于Annocation的spring-hibernate配置

    &lt;bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"&gt; ... ``` 3. **配置Hibernate**:在Hibernate配置中,我们需要指定实体类的位置,数据库连接信息,以及...

    struts2+spring+hibernate

    &lt;bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"&gt; &lt;property name="configLocation" value="classpath:hibernate.cfg.xml" /&gt; ...

    Spring+Hibernate程序架设步骤.doc

    &lt;bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"&gt; &lt;property name="dataSource"&gt;&lt;ref bean="dataSource"/&gt; &lt;prop key="hibernate.dialect"&gt;org.hibernate....

Global site tag (gtag.js) - Google Analytics