struts-spring-hibernate示例中的org.springframework.beans.factory.BeanCreationException
我试图在tomcat6中运行SpringStruts和hibernate示例,我遇到以下错误struts-spring-hibernate示例中的org.springframework.beans.factory.BeanCreationException,spring,hibernate,struts,Spring,Hibernate,Struts,我试图在tomcat6中运行SpringStruts和hibernate示例,我遇到以下错误 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/classes/config/database/spring/HibernateSessionFactory
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/classes/config/database/spring/HibernateSessionFactory.xml]: Invocation of init method failed; nested exception is org.hibernate.MappingException: entity class not found: com.mkyong.customer.model.Customer
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1338)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
at java.security.AccessController.doPrivileged(Native Method)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:423)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380)
at org.springframework.web.struts.ContextLoaderPlugIn.createWebApplicationContext(ContextLoaderPlugIn.java:354)
at org.springframework.web.struts.ContextLoaderPlugIn.initWebApplicationContext(ContextLoaderPlugIn.java:295)
at org.springframework.web.struts.ContextLoaderPlugIn.init(ContextLoaderPlugIn.java:225)
at org.apache.struts.action.ActionServlet.initModulePlugIns(ActionServlet.java:871)
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:359)
at javax.servlet.GenericServlet.init(GenericServlet.java:212)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1173)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:993)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4421)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4734)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
HibernateSessionFactory.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"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<!-- Hibernate session factory -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource"/>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>com/mkyong/customer/hibernate/Customer.hbm.xml</value>
</list>
</property>
</bean>
</beans>
Customer.java的包
StrutsSpringExample
src/main/java
com.mkyong.customer
model
Customer.java
com.mkyong.customer.model
根据错误消息,在类路径上找不到以下类:
com.mkyong.customer.model.Customer
此错误很明显,
initializeBean
失败,因为找不到该客户类
现在需要确保Customer.class存在于目录中
# find . -name Customer.class
./WEB-INF/classes/com/mkyong/customer/model/Customer.class
# pwd
/usr/share/tomcat6/webapps/<your_webapp_context>
#查找-名称Customer.class
./WEB-INF/classes/com/mkyong/customer/model/customer.class
#pwd
/usr/share/tomcat6/webapps/
另外,确保在lib文件夹中放置了所有必需的库。下面是我的webapp lib文件夹中的一个注意:当不满足库依赖项时,您将在war文件部署期间遇到许多异常
- antlr-2.7.2.jar
- commons-beanutils-1.8.0.jar
- commons-chain-1.2.jar
- commons-digester-1.8.jar
- commons-io-1.1.jar
- commons-validator-1.3.1.jar
- dom4j-1.6.1.jar
- geronimo-jpa-2.0-spec.jar
- 番石榴-11.0.1.jar
- hibernate-commons-annotations-3.2.0.Final.jar
- hibernate-core-3.6.4.Final.jar
- javassist-3.12.0.GA.jar
- oro-2.0.8.jar
- postgresql-jdbc4-9.1.jar
- 石英-all-1.6.6.jar
- spring-beans-2.5.jar
- spring-context-2.5.jar
- spring-context-support-2.5.jar
- spring-core-2.5.jar
- spring-jdbc-2.5.jar
- spring-orm-2.5.jar
- spring-tx.jar
- spring-web-2.5.jar
- spring-webmvc-struts-2.5.jar
- struts-core-1.3.10.jar
- struts-extras-1.3.10.jar
- struts-taglib-1.3.10.jar
- struts-tiles-1.3.10.jar
几天前,我已经完成了与PostgreSQL集成的教程,效果很好。如果你愿意,我可以把我的war文件上传到某个地方。Pelase检查编辑过的问题以查看Customer.java文件的目录结构。在你的目录结构中,是否有一个名为
com.mykong.Customer
的目录,或者实际上是三个嵌套目录。如果打开WAR文件,Customer.class
应该位于WEB-INF/classes/com/mkyong/Customer/model/
?@chetan,这是完整的堆栈跟踪吗?我的意思是在sessionFactory
bean创建之前是否还有其他异常发生?
com.mkyong.customer.model.Customer
# find . -name Customer.class
./WEB-INF/classes/com/mkyong/customer/model/Customer.class
# pwd
/usr/share/tomcat6/webapps/<your_webapp_context>