tôi đã tạo ra một dự án maven và thêm Spring4, Hibernate4 libs qua pom.xml Tôi đang cố gắng để liên kết ứng dụng web của tôi với cơ sở dữ liệu của tôi được tạo ra trong PostgreSQL , nhưng khi tôi xuất bản dự án của tôi trong tomcat apache 7 ngoại trừ sau đây xảy ra:java.lang.IllegalArgumentException: Không PersistenceProvider quy định trong cấu hình EntityManagerFactory
org.springframework.beans.factory.BeanCreationException: Lỗi tạo đậu với tên 'emf' quy định tại ServletContext nguồn [/WEB-INF/applicationContext.xml]: Yêu cầu phương thức init không thành công; ngoại lệ lồng nhau là java.lang.IllegalArgumentException: Không PersistenceProvider quy định trong cấu hình EntityManagerFactory, và chọn PersistenceUnitInfo không xác định một tên lớp nhà cung cấp hoặc ở org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean (AbstractAutowireCapableBeanFactory.java : 1553) tại org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean (AbstractAutowireCapableBeanFactory.java:539) tại org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean (AbstractAutowireCapableBeanFactory.java:475) tại org.springframework.be ans.factory.support.AbstractBeanFactory $ 1.getObject (AbstractBeanFactory.java:304) tại org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton (DefaultSingletonBeanRegistry.java:228) tại org.springframework.beans.factory .support.AbstractBeanFactory.doGetBean (AbstractBeanFactory.java:300) tại org.springframework.beans.factory.support.AbstractBeanFactory.getBean (AbstractBeanFactory.java:195) tại org.springframework.context.support.AbstractApplicationContext.getBean (AbstractApplicationContext.java:973) tại org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization (AbstractApplicationContext.java:750) tại org.springframework.context.support.AbstractApplicationContext.refresh (AbstractApplicationContext.java:482) tại org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext (ContextLoader.java:403) tại org.springframework.web .context.ContextLoader.initWebApplicationContext (ContextLoader.java:306) tại org.springframework.web.context.ContextLoaderListener.contextInitialized (ContextLoaderListener.java:106) tại org.apache.catalina.core.StandardContext.listenerStart (StandardContext .java: 4994) tại org.apache.catalina.core.StandardContext.startInternal (StandardContext.java:0492) tại org.apache.catalina.util.LifecycleBase.start (LifecycleBase.java:150) tại org.apache.catalina.core.ContainerBase $ StartChild.call (ContainerBase.java:1575) tại org.apache .catalina.core.ContainerBase $ StartChild.call (ContainerBase.java:1565) tại java.util.concurrent.FutureTask.run (Unknown Source) tại java.util.concurrent.ThreadPoolExecutor.runWorker (Unknown Source) tại java .util.concurrent.ThreadPoolExecutor $ Worker.run (Unknown Source) tại java.lang.Thread.run (Unknown Source) Gây ra bởi: java.lang.IllegalArgumentException: Không PersistenceProvider định trong cấu hình EntityManagerFactory, và chọn PersistenceUnitInfo không chỉ định một tên nhà cung cấp lớp hoặc ở org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory (LocalContainerEntityManagerFactoryBean.java:318) tại org.springframework.orm .jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet (AbstractEntityManagerFactoryBean.java:318) tại org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods (AbstractAutowireCapableBeanFactory.java:1612) tại org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory .initializeBean (AbstractAutowire CapableBeanFactory.java:1549) ... 21 hơn
đây là applicationContext.xml tôi:
<?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:context="http://www.springframework.org/schema/context"
xmlns:jdbc="http://www.springframework.org/schema/jdbc"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-4.0.xsd
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-4.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd">
<context:component-scan base-package="com.medsoft.stadto">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="org.postgresql.Driver" />
<property name="url" value="jdbc:postgresql://localhost:1993/Posts" />
<property name="username" value="postgres" />
<property name="password" value="123" />
</bean>
<bean class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" id="emf">
<property name="packagesToScan" value="com.medsoft.stadto.entity" />
<property name="dataSource" ref="dataSource" />
<property name="jpaProperties">
<props>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.hbm2dll.auto">create</prop>
</props>
</property>
</bean>
<tx:annotation-driven transaction-manager="txManager" />
<bean id="txManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
</beans>
Có cách nào để thực hiện mà không sử dụng perssistence.xml không? Bạn có thể giải thích những gì adapter nhà cung cấp của mình không? – Jess