web 服务器启动 Tomcat 信息: Initializing Spring root WebApplicationContext
一直停在这里不动,我当时纠结了很久。使用的是常见的Struts2+hibernate+spring
1)首先产看配置是否出错,applicationContext.xml是否有问题
2)XXX.hbm.xml是否写错
3)jar包是否冲突(ssh整合过程中,我都是自己网上下的jar包,让后自己全部加上去最后出现了这样的问题)。
4)这是楼主犯的最低级的错误,我本来用mysql数据库可以连接成功,为何用oracle就不行了呢,我思考的很久,原来是oracle服务没有开启(必要的三个),真是气煞我也。这里贴上自己的配置文件
mysql
<?xml version="1.0" encoding="UTF-8"?>
<!-- 指定Spring配置文件的DTD信息 -->
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.springframework.org/schema/beans"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<!-- Spring 配置文件的根元素是beans -->
<!-- 定义数据源,该bean的ID为dataSource -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<!-- 指定数据库驱动 -->
<property name="driverClass">
<value>com.mysql.jdbc.Driver</value>
</property>
<!-- 指定连接数据库的URL -->
<property name="jdbcUrl">
<value>jdbc:mysql://localhost:3306/student</value>
</property>
<property name="user">
<value>root</value>
</property>
<property name="password">
<value>root</value>
</property>
</bean>
<!-- 定义hibernate的Factory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<!-- 依赖注入数据源,注入正是上文定义的dataSource -->
<property name="dataSource"
ref="dataSource">
</property>
<!-- mappingResources属性用来列出全部映射 -->
<property name="mappingResources">
<list>
<value>com/cmcc/common/po/domain/User.hbm.xml</value>
<value>com/cmcc/common/po/domain/Attachment.hbm.xml</value>
<value>com/cmcc/common/po/domain/Announcement.hbm.xml</value>
<value>com/cmcc/common/po/domain/UserRole.hbm.xml</value>
<value>com/cmcc/common/po/domain/CateGory.hbm.xml</value>
</list>
</property>
<!-- 定义Hibernate 的SessionFactory的属性 -->
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLInnoDBDialect</prop>
<!-- 是否根据需要每次自动创建数据库 -->
<prop key="hibernate.hbm2ddl.auto">update</prop>
<!-- 显示Hibernate持久化操作所生成的SQL -->
<prop key="hibernate.show_sql">true</prop>
<!-- 将SQL脚本进行格式化后再输出 -->
<prop key="hibernate.format_sql">true</prop>
</props>
</property>
</bean>
<!-- 配置Hibernate的事物管理器 -->
<bean id="transactionManager"
class ="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory"/>
</property>
</bean>
<bean id="txProxyTemplate" abstract="true"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<!-- 注入事物管理器 -->
<property name="transactionManager" ref="transactionManager"></property>
<!-- 配置事物属性 -->
<property name="transactionAttributes">
<props>
<prop key="save*">PROPAGATION_REQUIRED</prop>
<prop key="remove*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="change*">PROPAGATION_REQUIRED</prop>
<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>
<!-- 配置具体的业务逻辑层组件的事物代理 -->
<bean id="facadeManager" parent="txProxyTemplate">
<property name="target">
<bean class="com.cmcc.common.service.impl.FacadeManagerImpl">
<property name="userDao" ref="userDao"></property>
<property name="attachmentDao" ref="attachmentDao"></property>
<property name="annoucementDao" ref="annoucementDao"></property>
<property name="userRoleDao" ref="userRoleDao"></property>
<property name="cateGoryDao" ref="cateGoryDao"></property>
</bean>
</property>
</bean>
</beans>
oracle
<?xml version="1.0" encoding="UTF-8"?>
<!-- 指定Spring配置文件的DTD信息 -->
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.springframework.org/schema/beans"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<!-- Spring 配置文件的根元素是beans -->
<!-- 定义数据源,该bean的ID为dataSource -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<!-- 指定数据库驱动 -->
<property name="driverClass">
<value>oracle.jdbc.OracleDriver</value>
</property>
<!-- 指定连接数据库的URL -->
<property name="jdbcUrl">
<value>jdbc:oracle:thin:@localhost:1521:orcl</value>
</property>
<property name="user">
<value>cloudsweb2</value>
</property>
<property name="password">
<value>cloudsweb2</value>
</property>
<property name="initialPoolSize">
<value>2</value>
</property>
<property name="minPoolSize">
<value>1</value>
</property>
<property name="maxPoolSize">
<value>2</value>
</property>
<property name="acquireIncrement">
<value>10</value>
</property>
<property name="maxIdleTime">
<value>600</value>
</property>
<property name="idleConnectionTestPeriod">
<value>900</value>
</property>
<property name="maxStatements">
<value>100</value>
</property>
<property name="autoCommitOnClose">
<value>true</value>
</property>
</bean>
<!-- 定义hibernate的Factory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<!-- 依赖注入数据源,注入正是上文定义的dataSource -->
<property name="dataSource"
ref="dataSource">
</property>
<!-- mappingResources属性用来列出全部映射 -->
<property name="mappingResources">
<list>
<value>com/cmcc/common/po/domain/Employee.hbm.xml</value>
</list>
</property>
<!-- 定义Hibernate 的SessionFactory的属性 -->
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.OracleDialect</prop>
<!-- 是否根据需要每次自动创建数据库 -->
<prop key="hibernate.hbm2ddl.auto">update</prop>
<!-- 显示Hibernate持久化操作所生成的SQL -->
<prop key="hibernate.show_sql">true</prop>
<!-- 将SQL脚本进行格式化后再输出 -->
<prop key="hibernate.format_sql">true</prop>
</props>
</property>
</bean>
<!-- 配置Hibernate的事物管理器 -->
<bean id="transactionManager"
class ="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory"/>
</property>
</bean>
<bean id="txProxyTemplate" abstract="true"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<!-- 注入事物管理器 -->
<property name="transactionManager" ref="transactionManager"></property>
<!-- 配置事物属性 -->
<property name="transactionAttributes">
<props>
<prop key="save*">PROPAGATION_REQUIRED</prop>
<prop key="remove*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="change*">PROPAGATION_REQUIRED</prop>
<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>
<!-- 配置具体的业务逻辑层组件的事物代理 -->
<bean id="facadeManager" parent="txProxyTemplate">
<property name="target">
<bean class="com.cmcc.common.service.impl.FacadeManagerImpl">
<property name="employeeDao" ref="employeeDao"></property>
</bean>
</property>
</bean>
</beans>
以上就是本人遇到的一些可能比较弱智的问题,如果遇到 “sessionfactory ”not in 什么什么什么的问题,当时我也是纠结了很久。这两个问题说到底还是数据库连接不上,所以检查以上步骤。
这是本人的一点小经验,申明一下本人是大菜鸟一个。请看到的朋友发现不对的地方,给出宝贵的意见,谢谢。