首页 文章

没有定义类型的唯一bean,期望单个bean但找到0

提问于
浏览
1

我之前提到的例外肯定是在问过 . 但在将此问题标记为重复之前,请阅读完整的问题陈述 . 因为我已经尝试过针对同样问题的所有其他解决方案,但不幸的是它们都没有达到目标 . 我将从完整的堆栈跟踪开始,如下所示: -

org.springframework.beans.factory.support.DefaultListableBeanFactory@5686a031 11:27:18,529 ERROR [org.springframework.web.servlet.DispatcherServlet](MSC服务线程1-6)上下文初始化失败:org.springframework.beans.factory .BeanCreationException:创建名为'UserSessionDao'的bean时出错:持久性依赖项的注入失败;嵌套异常是org.springframework.beans.factory.NoSuchBeanDefinitionException:没有定义类型为[javax.persistence.EntityManagerFactory]的唯一bean:期望的单个bean但在org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.postProcessPropertyValues(PersistenceAnnotationBeanPostProcessor)中找到0 .java:342)[spring-orm-3.1.1.RELEASE.jar:3.1.1.RELEASE] org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1106)[spring-beans- 3.1.1.RELEASE.jar:3.1.1.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)[spring-beans-3.1.1.RELEASE.jar:3.1 . 1.RELEASE] org.springframework.beans上的org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE] .factory.support.AbstractB eanFactory $ 1.getObject(AbstractBeanFactory.java:294)[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE] org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225 )org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)中的[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE] [spring-beans-3.1.1 . 位于org.springframework.beans.factory.support.AbstractBeanFactory.getBean的RELEASE.jar:3.1.1.RELEASE](AbstractBeanFactory.java:193)[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE] org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)org.springframework.context.support.AbstractApplicationContext中的[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE] .finishBeanFactoryInitialization(AbstractApplicationContext.java:913)[org.springframework.context.support.AbstractApplicationCo上的[spring-context-3.1.1.RELEASE.jar:3.1.1.RELEASE] ntext.refresh(AbstractApplicationContext.java:464)[spring-context-3.1.1.RELEASE.jar:3.1.1.RELEASE] at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:631)[chring org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:588)中的-webmvc-3.1.1.RELEASE.jar:3.1.1.RELEASE] [spring-webmvc-3.1.1.RELEASE.jar:3.1 .1.RELEASE]在org.springframework.web的org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:645)[spring-webmvc-3.1.1.RELEASE.jar:3.1.1.RELEASE] . servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:508)[spring-webmvc-3.1.1.RELEASE.jar:3.1.1.RELEASE] org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:449) [spring-webmvc-3.1.1.RELEASE.jar:3.1.1.RELEASE]在org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:133)[spring-webmvc-3.1.1.RELEASE.jar :3.1.1.RELEA SE]在org.apache.catalina.core.StandardWrapper的javax.servlet.GenericServlet.init(GenericServlet.java:242)[jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final] .loadServlet(StandardWrapper.java:1202)[jbossweb-7.0.13.Final.jar:] at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1102)[jbossweb-7.0.13.Final.jar :] org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3655)[jbossweb-7.0.13.Final.jar:] at org.apache.catalina.core.StandardContext.start(StandardContext.java: 3873)[jbossweb-7.0.13.Final.jar:] org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:90)[jboss-as-web-7.1.1.Final.jar: 7.1.1.Final] atorg.jboss.msc.service.ServiceControllerImpl $ StartTask.startService(ServiceControllerImpl.java:1811)位于java.util.concurrent.ThreadPoolExecutor的org.jboss.msc.service.ServiceControllerImpl $ StartTask.run(ServiceControllerImpl.java:1746) . java.lang上的java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:615)[rt.jar:1.7.0_67]的runWorker(ThreadPoolExecutor.java:1145)[rt.jar:1.7.0_67] . Thread.run(Thread.java:745)[rt.jar:1.7.0_67]引起:org.springframework.beans.factory.NoSuchBeanDefinitionException:没有定义[javax.persistence.EntityManagerFactory]类型的唯一bean:期望的单个bean但在org.springframework.orm上的org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.findDefaultEntityManagerFactory(PersistenceAnnotationBeanPostProcessor.java:537)[spring-orm-3.1.1.RELEASE.jar:3.1.1.RELEASE]中找到0 . jpa.support.PersistenceAnnotationBeanPostProcessor.findEntityManagerFactory(PersistenceAnnotationBeanPostProcessor.java:496)[spr ing-orm-3.1.1.RELEASE.jar:3.1.1.RELEASE] at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor $ PersistenceElement.resolveEntityManager(PersistenceAnnotationBeanPostProcessor.java:657)[spring-orm-3.1.1 . RELEASE.jar:3.1.1.RELEASE] at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor $ PersistenceElement.getResourceToInject(PersistenceAnnotationBeanPostProcessor.java:630)[spring-orm-3.1.1.RELEASE.jar:3.1.1 . 在org.springframework.beans的org.springframework.beans.factory.annotation.InjectionMetadata $ InjectedElement.inject(InjectionMetadata.java:150)[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE]中的RELEASE] .factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE] org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.postProcessPropertyValues(PersistenceAnnotationBeanPostProcessor) .java:339)[spring-orm-3.1.1.RELEASE.jar:3.1.1.RELEASE] ... 27更多11:27:18,563 ER ROR [org.apache.catalina.core.ContainerBase . [jboss.web] . [default-host] . [/ AltSurvey]](MSC服务主题1-6)StandardWrapper.Throwable:org.springframework.beans.factory.BeanCreationException :创建名为'UserSessionDao'的bean时出错:持久性依赖项的注入失败;嵌套异常是org.springframework.beans.factory.NoSuchBeanDefinitionException:没有定义类型为[javax.persistence.EntityManagerFactory]的唯一bean:期望的单个bean但在org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.postProcessPropertyValues(PersistenceAnnotationBeanPostProcessor)中找到0 .java:342)[spring-orm-3.1.1.RELEASE.jar:3.1.1.RELEASE] org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1106)[spring-beans- 3.1.1.RELEASE.jar:3.1.1.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)[spring-beans-3.1.1.RELEASE.jar:3.1 . 1.RELEASE] org.springframework.beans上的org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE] .factory.support.AbstractB eanFactory $ 1.getObject(AbstractBeanFactory.java:294)[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE] org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225 )org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)中的[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE] [spring-beans-3.1.1 . 位于org.springframework.beans.factory.support.AbstractBeanFactory.getBean的RELEASE.jar:3.1.1.RELEASE](AbstractBeanFactory.java:193)[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE] org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)org.springframework.context.support.AbstractApplicationContext中的[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE] .finishBeanFactoryInitialization(AbstractApplicationContext.java:913)[org.springframework.context.support.AbstractApplicationCo上的[spring-context-3.1.1.RELEASE.jar:3.1.1.RELEASE] ntext.refresh(AbstractApplicationContext.java:464)[spring-context-3.1.1.RELEASE.jar:3.1.1.RELEASE] atorg.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:631)[spring-webmvc-3.1.1.RELEASE.jar:3.1.1.RELEASE] org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext( FrameworkServlet.java:588)[spring-webmvc-3.1.1.RELEASE.jar:3.1.1.RELEASE]在org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:645)[spring-webmvc-3.1 .lELEASE.jar:3.1.1.RELEASE] at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:508)[chring-webmvc- 3.1.1.RELEASE.jar:3.1.1.RELEASE ] org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:449)[spring-webmvc-3.1.1.RELEASE.jar:3.1.1.RELEASE] org.springframework.web.servlet.HttpServletBean . init(HttpServletBean.java:133)[spring-webmvc-3.1.1.RELEASE.jar:3.1.1.RELEASE],位于javax.servlet.GenericServlet.init(GenericServlet.java:242)[jboss-servlet-api_3.0_spec -1.0.0.Fin al.jar:1.0.0.Final] at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1202)[jbossweb-7.0.13.Final.jar:] at org.apache.catalina.core . StandardWrapper.load(StandardWrapper.java:1102)[jbossweb-7.0.13.Final.jar:] at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3655)[jbossweb-7.0.13.Final . jar:] org.apache.catalina.core.StandardContext.start(StandardContext.java:3873)[jbossweb-7.0.13.Final.jar:] at org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService) .java:90)[org.jboss.msc.service.ServiceControllerImpl $ startCask.startService(ServiceControllerImpl.java:1811)org中的[jboss-as-web-7.1.1.Final.jar:7.1.1.Final] . java.util.concurrent的java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)[rt.jar:1.7.0_67]中的jboss.msc.service.ServiceControllerImpl $ StartTask.run(ServiceControllerImpl.java:1746) java.lang上的.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:615)[rt.jar:1.7.0_67] . Thread.run(Thread.java:745)[rt.jar:1.7.0_67]引起:org.springframework.beans.factory.NoSuchBeanDefinitionException:没有定义[javax.persistence.EntityManagerFactory]类型的唯一bean:期望的单个bean但在org.springframework.orm上的org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.findDefaultEntityManagerFactory(PersistenceAnnotationBeanPostProcessor.java:537)[spring-orm-3.1.1.RELEASE.jar:3.1.1.RELEASE]中找到0 . org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor $ PersistenceElement.resolveEntityManager中的jpa.support.PersistenceAnnotationBeanPostProcessor.findEntityManagerFactory(PersistenceAnnotationBeanPostProcessor.java:496)[spring-orm-3.1.1.RELEASE.jar:3.1.1.RELEASE] PersistenceAnnotationBeanPostProcessor.java:657)org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor上的[spring-orm-3.1.1.RELEASE.jar:3.1.1.RELEASE] $ PersistenceElement.getResourceToInject(PersistenceAnnotationBeanPostProcessor . java:630)[spring-orm-3.1.1.RELEASE.jar:3.1.1.RELEASE] org.springframework.beans.factory.annotation.InjectionMetadata $ InjectedElement.inject(InjectionMetadata.java:150)[spring-beans] -3.1.1.RELEASE.jar:3.1.1.RELEASE]在org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)[spring-beans-3.1.1.RELEASE.jar:3.1 .1.RELEASE]在org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.postProcessPropertyValues(PersistenceAnnotationBeanPostProcessor.java:339)[spring-orm-3.1.1.RELEASE.jar:3.1.1.RELEASE] ... 27更多11:27:18,615 ERROR [org.apache.catalina.core.ContainerBase . [jboss.web] . [default-host] . [/ AltSurvey]](MSC服务主题1-6)Servlet / AltSurvey抛出load()异常:org.springframework.beans.factory.NoSuchBeanDefinitionException:没有定义[javax.persistence.EntityManagerFactory]类型的唯一bean:期望的单个bean但在org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.find中找到0在Org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.findEntityManagerFactory(PersistenceAnnotationBeanPostProcessor.java:496)[Spring-orm-3.1.1.RELEASE.jar:3.1.1.RELEASE]的DefaultEntityManagerFactory(PersistenceAnnotationBeanPostProcessor.java:537) -orm-3.1.1.RELEASE.jar:3.1.1.RELEASE] at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor $ PersistenceElement.resolveEntityManager(PersistenceAnnotationBeanPostProcessor.java:657)[ spring ORM-3.1.1.RELEASE.jar:3.1.1.RELEASE]在org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor $ PersistenceElement.getResourceToInject(PersistenceAnnotationBeanPostProcessor.java:630)[ spring ORM-3.1.1 .rELEASE.jar:3.1.1.RELEASE] at org.springframework.beans.factory.annotation.InjectionMetadata $ InjectedElement.inject(InjectionMetadata.java:150)[spring-beans-3.1.1.RELEASE.jar:3.1.1 .RELEASE] org.springframework.orm上的org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE] . org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory)中的jpa.support.PersistenceAnnotationBeanPostProcessor.postProcessPropertyValues(PersistenceAnnotationBeanPostProcessor.java:339)[spring-orm-3.1.1.RELEASE.jar:3.1.1.RELEASE] . java:1106)[org.springframework.beans.factory.support.Abst的[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE] orct.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)中的ractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE] [spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE]在org.springframework.beans.factory.support.AbstractBeanFactory $ 1.getObject(AbstractBeanFactory.java:294)[spring-beans-3.1.1 . RELEASE.jar:3.1.1.RELEASE] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE] org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE] org.springframework.beans.factory.support .AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)[org.springframework.beans.factory.support.Default中的[spring-beans-3.1.1.RELEASE.jar:3.1.1.RELEASE] ListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)[ spring beans -3.1.1.RELEASE.jar:3.1.1.RELEASE]在org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913)[ spring -context-3.1.1.RELEASE.jar:3.1.1.RELEASE] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464)[spring-context-3.1.1.RELEASE.jar:3.1 .1.RELEASE]在org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:631)[ spring webmvc-3.1.1.RELEASE.jar:3.1.1.RELEASE在org.springframework.web] . servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:588)[ spring webmvc-3.1.1.RELEASE.jar:3.1.1.RELEASE]在org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:645) [spring-webmvc-3.1.1.RELEASE.jar:3.1.1.RELEASE] org.springframework.web.servlet.FrameworkServl et.initWebApplicationContext(FrameworkServlet.java:508)[ spring webmvc-3.1.1.RELEASE.jar:3.1.1.RELEASE]在org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:449)[ spring -webmvc-3.1.1.RELEASE.jar:3.1.1.RELEASE]在org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:133)[spring-webmvc-3.1.1.RELEASE.jar:3.1 .1.RELEASE]在org.apache.catalina的javax.servlet.GenericServlet.init(GenericServlet.java:242)[jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final] . core.tandardWrapper.loadServlet(StandardWrapper.java:1202)[jbossweb-7.0.13.Final.jar:] at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1102)[jbossweb-7.0.13 . Final.jar:] org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3655)[jbossweb-7.0.13.Final.jar:] at org.apache.catalina.core.StandardContext.start(StandardContext .java:3873)[jbossweb-7.0.13.Final.jar:] at org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploy mentService.java:90)[jboss-as-web-7.1.1.Final.jar:7.1.1.Final] org.jboss.msc.service.ServiceControllerImpl $ StartTask.startService(ServiceControllerImpl.java:1811)at org java.util的java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)[rt.jar:1.7.0_67]中的.jboss.msc.service.ServiceControllerImpl $ StartTask.run(ServiceControllerImpl.java:1746) . concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:615)[rt.jar:1.7.0_67] atjava.lang.Thread.run(Thread.java:745)[rt.jar:1.7.0_67] 11:27:18,769 INFO [org.jboss.web](MSC服务主题1-6)JBAS018210:注册Web上下文: / AltSurvey 11:27:18,803 INFO [org.jboss.as](MSC服务主题1-6)JBAS015951:管理控制台监听http://127.0.0.1:9990 11:27:18,803 INFO [org.jboss.as ](MSC服务主题1-6)JBAS015874:JBoss AS 7.1.1.Final“Brontes”在59812ms开始 - 565项服务中的466项(81项服务被动或按需)11:27:19,077 INFO [org.jboss .as.server](DeploymentScanner-threads - 2)JBAS018559:已部署“AltSurvey.war”

请注意即使我在部署时遇到异常,但仍然部署了部署 .

现在根据其中一个解决方案,我甚至配置了实体管理器 . 请找我的hibernateJpaConfig.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"
    xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:p="http://www.springframework.org/schema/p"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
                http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
                http://www.springframework.org/schema/context
                http://www.springframework.org/schema/context/spring-context-3.0.xsd
                http://www.springframework.org/schema/tx
                http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
                http://www.springframework.org/schema/aop
                http://www.springframework.org/schema/aop/spring-aop-3.0.xsd"
    default-autowire="byName">

    <bean id="surveyDataSource" class="org.apache.commons.dbcp.BasicDataSource"
        scope="singleton" destroy-method="close">
        <property name="driverClass" value="${driver}" />
        <property name="jdbcUrl" value="${url}" />
        <property name="user" value="${user}" />
        <property name="password" value="${password}" />
        <property name="initialPoolSize" value="10" />
        <property name="minPoolSize" value="5" />
        <property name="maxPoolSize" value="20" />
        <property name="maxIdleTime" value="5" />
        <property name="autoCommitOnClose" value="false" />
    </bean>

    <bean id="entityManagerFactory" depends-on="surveyDataSource"
        class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
        <property name="dataSource" ref="surveyDataSource" />
        <property name="persistenceXmlLocation" value="classpath:persistence.xml" />
        <property name="jpaVendorAdapter">
            <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" />
        </property>
    </bean>
    <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
        <property name="entityManagerFactory" ref="entityManagerFactory" />
    </bean>
    <tx:annotation-driven transaction-manager="transactionManager" />
</beans>

但这没有成功 . 之后再根据我尝试添加下面的代码片段之一的解决方案: -

Spring OpenEntityManagerInViewFilter org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter

在我的web.xml中 . 我的Web.xml如下: -

<?xml version="1.0" encoding="UTF-8"?>

<!-- Document : web.xml Created on : 21 January, 2016, 11:17 AM Author : 
    Vaibhav kashyap Description: This file will contain the main servlet mappings 
    and all the app configuration entry points. -->
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    version="3.0" metadata-complete="true">
    <context-param>
        <description>Spring configuration file</description>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:ApplicationContext.xml</param-value>
    </context-param>

    <persistence-unit-ref>
        <description>
            Persistence unit description.
        </description>
        <persistence-unit-ref-name>persistence/TalentPactFormEngine_New</persistence-unit-ref-name>
        <persistence-unit-name>TalentPactFormEngine_New</persistence-unit-name>
    </persistence-unit-ref>

    <listener>
        <description>Spring Loader</description>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <listener>
        <listener-class>org.springframework.security.web.session.HttpSessionEventPublisher</listener-class>
    </listener>
    <filter>
        <filter-name>Spring OpenEntityManagerInViewFilter</filter-name>
        <filter-class>org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter</filter-class>
    </filter>

    <servlet>
        <servlet-name>rest</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <!-- <filter> <filter-name>filterChainProxy</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> 
        </filter> <filter-mapping> <filter-name>filterChainProxy</filter-name> <url-pattern>*</url-pattern> 
        <dispatcher>FORWARD</dispatcher> <dispatcher>REQUEST</dispatcher> </filter-mapping> -->
    <servlet-mapping>
        <servlet-name>rest</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.js</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.css</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.gif</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.png</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>/images/*</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>/fonts/*</url-pattern>
    </servlet-mapping>

    <mime-mapping>
        <extension>json</extension>
        <mime-type>application/json</mime-type>
    </mime-mapping>
    <session-config>
        <tracking-mode>COOKIE</tracking-mode>
    </session-config>
</web-app>

但这也没有成功 . 我试过的下一个解决方案

context:annotation-config

通过我的应用程序上下文启用此功能,如下所示: -

<?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:p="http://www.springframework.org/schema/p" xmlns:sec="http://www.springframework.org/schema/security"
    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/context
                http://www.springframework.org/schema/context/spring-context-2.5.xsd
                http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security.xsd
                http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd"
    default-lazy-init="true">


    <context:annotation-config />
    <context:component-scan
        base-package="com.alt.survey.common.db.dao,com.alt.survey.common.db.service,com.alt.survey.common.db.dao,com.alt.survey.common.db.dao.impl,com.alt.survey.common.db.domain,com.alt.survey.common.db.service,com.alt.survey.common.db.service.impl" />

    <!-- Aspect for auto logging -->
    <aop:aspectj-autoproxy />
    <bean id="surveyAudit" class="com.alt.survey.common.SurveyLogging" />
    <!-- Database configuration -->
    <bean id="propertyConfigurer"
        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="location">
            <value>file:C:\\Users\\vaibhav.kashyap\\Documents\\surveydbdetails\\db.properties</value>
        </property>
    </bean>
    <!-- log4j configuration -->    
    <bean id="log4jInitialization"
        class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
        <property name="targetClass" value="org.springframework.util.Log4jConfigurer" />
        <property name="targetMethod" value="initLogging" />
        <property name="arguments">
            <list>
                <value>C:\\Users\\vaibhav.kashyap\\Documents\\surveydbdetails\\log4j.properties</value>
                <value>30000</value>
            </list>
        </property>
    </bean>
</beans>

通过代码使用此配置为我的实体管理器,如下所示: -

@PersistenceContext(unitName = "TalentPactFormEngine_New")
    protected EntityManager em;

也失败了 . 现在尝试了所有其他的解决方案,我发现我已经无处可去,因此谦卑地请求帮助 . 任何类型的解决方案(新的)都将非常值得注意 .

1 回答

  • 0

    尝试替换这个:

    @PersistenceContext(unitName = "TalentPactFormEngine_New")
       protected EntityManager em;
    

    附:

    @PersistenceContext(unitName = "entityManagerFactory")
         public EntityManager em;
    

相关问题