无法解析'javax.persistence.EntityManager'的bean [英] Unable to resolve a bean for 'javax.persistence.EntityManager'

查看:183
本文介绍了无法解析'javax.persistence.EntityManager'的bean的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图使用Spring(+ JPA)和Hibernate使用Annotations来实现应用程序。

我重新添加了JPA部分。从那以后,我得到:

  javax.enterprise.inject.UnsatisfiedResolutionException:无法解析'javax.persistence.EntityManager'限定符[@ javax.enterprise.inject.Default(),@ javax.enterprise.inject.Any()]。 

错误。
我也收到以下警告:

 警告:WELD-000411:Observer方法[BackedAnnotatedMethod]受保护的org.springframework。 data.repository.cdi.CdiRepositoryExtensionSupport.processAnnotatedType(@Observes ProcessAnnotatedType< Object>)接收所有注释类型的事件。考虑使用@WithAnnotations或具有边界的泛型类型限制事件。 
WARN:WELD-000411:Observer方法[BackedAnnotatedMethod] private org.glassfish.jersey.gf.cdi.internal.CdiComponentProvider.processAnnotatedType(@Observes ProcessAnnotatedType< Object>)接收所有注释类型的事件。考虑使用@WithAnnotations或具有边界的泛型类型限制事件。
WARN:WELD-000411:Observer方法[BackedAnnotatedMethod] public org.glassfish.jms.injection.JMSCDIExtension.processAnnotatedType(@Observes ProcessAnnotatedType< Object>)接收所有注释类型的事件。考虑使用@WithAnnotations或具有边界的泛型类型限制事件。
WARN:WELD-000411:Observer方法[BackedAnnotatedMethod] org.glassfish.sse.impl.ServerSentEventCdiExtension.processAnnotatedType(@Observes ProcessAnnotatedType< Object>,BeanManager)接收所有注释类型的事件。考虑使用@WithAnnotations或具有边界的泛型类型限制事件。

我不确定这两件事是否有关系,但我认为我会提示警告。



这里是我的application-context.xml:

 < xml version =1.0encoding =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-4.1.xsd
http:// www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd
http://www.springframework.org/schema/tx http:/ /www.springframework.org/schema/tx/spring-tx-4.1.xsd\">

<! - 需要扫描注解的包 - >
< context:component-scan base-package =com.redast/>
< jpa:repositories base-package =com.redast/>
<! - 使用注解进行配置 - >
<! - < context:annotation-config /> - >
< context:spring-configured />


<! - 数据源声明 - >
< bean name =dataSourceclass =org.springframework.jdbc.datasource.DriverManagerDataSource>
< property name =driverClassNamevalue =com.mysql.jdbc.Driver/>
< property name =urlvalue =jdbc:mysql:// localhost:3306 / redast/>
< property name =usernamevalue =xxxxxx/>
< property name =passwordvalue =xxxxxx/>
< / bean>




<! - 会话工厂声明 - >
< bean id =SessionFactoryclass =org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean>
< property name =dataSourceref =dataSource/>
< property name =packagesToScan>
< list>
< value> com.redast.model< /值>
<值> com.redast.service< /值>
< value> com.redast.dao< / value>
< / list>
< / property>
<! - < property name =persistenceUnitPostProcessors>
< list>
< bean class =org.springframework.data.jpa.support.ClasspathScanningPersistenceUnitPostProcessor>
< constructor-arg value =com.redast/>
< / bean>
< / list>
< / property> - >

< property name =jpaVendorAdapter>
< bean class =org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter/>
< / property>
< property name =jpaProperties>
<道具>
< prop key =hibernate.hbm2ddl.auto> create-drop< / prop>
< prop key =hibernate.dialect> org.hibernate.dialect.MySQL5Dialect< / prop>
< prop key =hibernate.show_sql> true< / prop>
< prop key =format_sql> true< / prop>
< prop key =use_sql_comments> true< / prop>
< /道具>
< / property>

< / bean>

<! - 启用基于注释的交易行为配置 - >
< tx:annotation-driven transaction-manager =txManager/>

<! - 事务管理器已定义 - >
< bean id =txManagerclass =org.springframework.orm.jpa.JpaTransactionManager>
< property name =SessionFactoryref =SessionFactory/>
< / bean>
<! -
< bean id =transactionTemplateclass =org.springframework.transaction.support.TransactionTemplate>
< property name =transactionManagerref =txManager/>
< / bean>
- >

< bean id =persistenceExceptionTranslationPostProcessor
class =org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor/>
< / beans>

我对Spring和hibernate相当陌生,所以我的.xml文件可能很糟糕。 (对于我来说很难,从看教程和不同的资源,到底什么是我需要什么)。

b
$ b

  import com.redast.model.Announcement; 
import org.springframework.data.jpa.repository.JpaRepository;

public interface AnnouncementDAO extends JpaRepository< Announcement,Long> {

}

这里是完整的错误:

  Warnung:忽略WEB-INF / sun-web.xml in归档/C:/Ben/NetBeansProjects/redast/target/redast-1.0-SNAPSHOT/,因为WLS副本运行时xml WEB-INF / glassfish-web.xml存在于同一个归档中。 
信息:14:14:05.019 [admin-listener(2)] DEBUG oscore.env.StandardEnvironment - 以最低搜索优先级添加[systemProperties] PropertySource
信息:14:14:05.032 [admin- listener(2)] DEBUG oscore.env.StandardEnvironment - 以最低搜索优先级添加[systemEnvironment] PropertySource
信息:14:14:05.032 [admin-listener(2)] DEBUG oscore.env.StandardEnvironment - 已初始化带有PropertySources的标准环境[systemProperties,systemEnvironment]
信息:14:14:05.053 [admin-listener(2)]信息osdjrcdi.JpaRepositoryExtension - 激活Spring Data JPA存储库的CDI扩展。
WARN:WELD-000411:Observer方法[BackedAnnotatedMethod] protected org.springframework.data.repository.cdi.CdiRepositoryExtensionSupport.processAnnotatedType(@Observes ProcessAnnotatedType< Object>)接收所有注释类型的事件。考虑使用@WithAnnotations或具有边界的泛型类型限制事件。
WARN:WELD-000411:Observer方法[BackedAnnotatedMethod] private org.glassfish.jersey.gf.cdi.internal.CdiComponentProvider.processAnnotatedType(@Observes ProcessAnnotatedType< Object>)接收所有注释类型的事件。考虑使用@WithAnnotations或具有边界的泛型类型限制事件。
WARN:WELD-000411:Observer方法[BackedAnnotatedMethod] public org.glassfish.jms.injection.JMSCDIExtension.processAnnotatedType(@Observes ProcessAnnotatedType< Object>)接收所有注释类型的事件。考虑使用@WithAnnotations或具有边界的泛型类型限制事件。
WARN:WELD-000411:Observer方法[BackedAnnotatedMethod] org.glassfish.sse.impl.ServerSentEventCdiExtension.processAnnotatedType(@Observes ProcessAnnotatedType< Object>,BeanManager)接收所有注释类型的事件。考虑使用@WithAnnotations或具有边界的泛型类型限制事件。
信息:14:14:05.431 [admin-listener(2)]调试osdrcCdiRepositoryExtensionSupport - 使用限定符发现存储库类型'com.redast.dao.ProcessDAO'[@ javax.enterprise.inject.Default() javax.enterprise.inject.Any()]。
信息:14:14:05.437 [admin-listener(2)] DEBUG osdrcCdiRepositoryExtensionSupport - 使用限定符发现存储库类型'com.redast.dao.AssetFragmentDAO'[@ javax.enterprise.inject.Default(),@ javax.enterprise.inject.Any()]。
信息:14:14:05.463 [admin-listener(2)]调试osdrcCdiRepositoryExtensionSupport - 发现存在限定符的存储库类型'com.redast.dao.RoleDAOImpl'[@ javax.enterprise.inject.Default() javax.enterprise.inject.Any()]。
信息:14:14:05.484 [admin-listener(2)] DEBUG osdrcCdiRepositoryExtensionSupport - 使用限定符发现存储库类型'com.redast.dao.FragmentValueDefDAO'[@ javax.enterprise.inject.Default(),@ javax.enterprise.inject.Any()]。
信息:14:14:05.489 [admin-listener(2)]调试osdrcCdiRepositoryExtensionSupport - 使用限定符发现存储库类型'com.redast.dao.FragmentDAO'[@ javax.enterprise.inject.Default(),@ javax.enterprise.inject.Any()]。
信息:14:14:05.490 [admin-listener(2)] DEBUG osdrcCdiRepositoryExtensionSupport - 发现的存储库类型'com.redast.dao.ProcessNodeDAO'带限定符[@ javax.enterprise.inject.Default() javax.enterprise.inject.Any()]。
信息:14:14:05.494 [admin-listener(2)] DEBUG osdrcCdiRepositoryExtensionSupport - 发现的存储库类型'com.redast.dao.AnnouncementDAO'带限定符[@ javax.enterprise.inject.Default() javax.enterprise.inject.Any()]。
信息:14:14:05.499 [admin-listener(2)] DEBUG osdrcCdiRepositoryExtensionSupport - 已发现的存储库类型'com.redast.dao.AssetDAO'带限定符[@ javax.enterprise.inject.Default() javax.enterprise.inject.Any()]。
信息:14:14:05.506 [admin-listener(2)] DEBUG osdrcCdiRepositoryExtensionSupport - 使用限定符发现存储库类型'com.redast.dao.UserDAOImpl'[@ javax.enterprise.inject.Default(),@ javax.enterprise.inject.Any()]。
Schwerwiegend:生命周期处理期间的异常
org.glassfish.deployment.common.DeploymentException:CDI定义失败:带有1个异常的异常列表:
异常0:
javax.enterprise.inject .UnsatisfiedResolutionException:无法使用限定符[javax.enterprise.inject.Default(),@ javax.enterprise.inject.Any()]解析'javax.persistence.EntityManager'的bean。
at org.springframework.data.jpa.repository.cdi.JpaRepositoryExtension.createRepositoryBean(JpaRepositoryExtension.java:118)
at org.springframework.data.jpa.repository.cdi.JpaRepositoryExtension.afterBeanDiscovery(JpaRepositoryExtension。的java:94)
。在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)在在sun.reflect.DelegatingMethodAccessorImpl sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

。调用(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.jboss.weld.injection.MethodInjectionPoint.invokeOnInstanceWithSpecialValue(MethodInjectionPoint.java: 90)在org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:271

。在org.jboss.weld.event.ExtensionObserverMethodImpl.sendEvent(ExtensionObserverMethodImpl.java:121)
at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:258)
在org.jboss.weld.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:237)
在org.jboss.weld.event.ObserverNotifier.notifyObserver(ObserverNotifier.java:174)
在org.jboss .weld.event.ObserverNotifier.notifyObservers(ObserverNotifier.java:133)
at org.jboss.weld.event.ObserverNotifier.fireEvent(ObserverNotifier.java:107)
at org.jboss.weld.bootstrap .events.AbstractContainerEvent.fire(AbstractContainerEvent.java:54)
at org.jboss.weld.bootstrap.events.AbstractDefinitionContainerEvent.fire(AbstractDefinitionContainerEvent.java:42)
at org.jboss.weld.bootstrap .events.AfterBeanDiscoveryImpl.fire(AfterBeanDiscoveryImpl.java:59)
在org.jboss.weld.bootstrap.WeldStartup.deployBeans(WeldStartup.java:396)
在org.jboss.weld.bootstrap.WeldBootstrap .deployBeans(WeldBootstrap.java:83)
在org.glassfish.weld.WeldDeployer.event(WeldDeployer.java:222)
在org.glassfish.kernel.event.EventsImpl.send(EventsImpl.java :131)
at org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:328)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:496 )
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:219)
at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:491)
at com.sun.enterprise.v3.admin.CommandRunnerImpl $ 2 $ 1.run(CommandRunnerImpl.java:539)
at com.sun.enterprise.v3.admin.CommandRunnerImpl $ 2 $ 1.run(CommandRunnerImpl.java :535)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:360)
at com.sun.enterprise .v3.admin.CommandRunnerImpl $ 2.execute(CommandRunnerImpl.java:534)
at com.sun.enterprise.v3.admin.CommandRunnerImpl $ 3.run(CommandRunnerImpl.java:565)
at com.sun .enterprise.v3.admin.CommandRunnerImpl $ 3.run(CommandRunnerImpl.java:557)
at java .security.AccessController.doPrivileged(Native方法)
位于javax.security.auth.Subject.doAs(Subject.java:360)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand( CommandRunnerImpl.java:556)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1464)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.access $ 1300 (CommandRunnerImpl.java:109)
at com.sun.enterprise.v3.admin.CommandRunnerImpl $ ExecutionContext.execute(CommandRunnerImpl.java:1846)
at com.sun.enterprise.v3.admin.CommandRunnerImpl $ ExecutionContext.execute(CommandRunnerImpl.java:1722)
at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:534)
at com.sun.enterprise.v3.admin .AdminAdapter.onMissingResource(AdminAdapter.java:224)
at org.glassfish.grizzly.http.server.StaticHttpHandlerBase.service(StaticHttpHandlerBase.java:189)
at com.sun.enterprise.v3.services .impl.ContainerMapper $ HttpHandlerCall在.com中的
(ContainerMapper.java:459) server.HttpHandler.runService(HttpHandler.java:201)
在org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:175)
在org.glassfish.grizzly.http。 server.HttpServerFilter.handleRead(HttpServerFilter.java:235)
在org.glassfish.grizzly.filterchain.ExecutorResolver $ 9.execute(ExecutorResolver.java:119)
在org.glassfish.grizzly.filterchain.DefaultFilterChain .executeFilter(DefaultFilterChain.java:284)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain .java:133)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112)
at org.glassfish.grizzly.ProcessorExecutor.execute(Pr ocessorExecutor.java:77)
在org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:561)
在org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy。 java:112)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access $ 100(WorkerThreadIOStrategy.java:56 )
在org.glassfish.grizzly.strategies.WorkerThreadIOStrategy $ WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
at org.glassfish.grizzly.threadpool.AbstractThreadPool $ Worker.doWork(AbstractThreadPool.java:565 )
at org.glassfish.grizzly.threadpool.AbstractThreadPool $ Worker.run(AbstractThreadPool.java:545)
at java.lang.Thread.run(Thread.java:745)
at org.glassfish.weld.WeldDeployer.event(WeldDeployer.java:234)
org.glassfish.kernel.event.EventsImpl.send(EventsImpl.java:131)
at org .glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:328)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:496)
at com.sun .enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:219)
at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:491)
at com.sun.enterprise .v3.admin.CommandRunnerImpl $ 2 $ 1.run(CommandRunnerImpl.java:539)
at com.sun.enterprise.v3.admin.CommandRunnerImpl $ 2 $ 1.run(CommandRunnerImpl.java:535)
at java .security.AccessController.doPrivileged(Native方法)
位于javax.security.auth.Subject.doAs(Subject.java:360)
位于com.sun.enterprise.v3.admin.CommandRunnerImpl $ 2.execute (CommandRunnerImpl.java:534)
at com.sun.enterprise.v3.admin.CommandRunnerImpl $ 3.run(CommandRunnerImpl.java:565)
at com.sun.enterprise.v3.admin.CommandRunnerImpl $ 3 .run(CommandRunnerImpl.java:557)在java.security.AccessContr处
oller.doPrivileged(Native方法)
在javax.security.auth.Subject.doAs(Subject.java:360)
在com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java :556)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1464)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.access $ 1300(CommandRunnerImpl。 java:109)
at com.sun.enterprise.v3.admin.CommandRunnerImpl $ ExecutionContext.execute(CommandRunnerImpl.java:1846)
at com.sun.enterprise.v3.admin.CommandRunnerImpl $ ExecutionContext。在com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:534)处执行(CommandRunnerImpl.java:1722)
,在com.sun.enterprise.v3.admin.AdminAdapter处执行
。 onMissingResource(AdminAdapter.java:224)
at org.glassfish.grizzly.http.server.StaticHttpHandlerBase.service(StaticHttpHandlerBase.java:189)
at com.sun.enterprise.v3.services.impl。 ContainerMapper $ HttpHandlerCallable.call(ContainerMa
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167)
at org.glassfish.grizzly.http.server.HttpHandler。 runService(HttpHandler.java:201)
at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:175)
at org.glassfish.grizzly.http.server.HttpServerFilter。 handleRead(HttpServerFilter.java:235)
at org.glassfish.grizzly.filterchain.ExecutorResolver $ 9.execute(ExecutorResolver.java:119)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain .java:284)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133 )
在org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112)
在org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java: 77)
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:561)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)在org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)

。在org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access $ 100(WorkerThreadIOStrategy.java:56)
。在org.glassfish.grizzly.strategies.WorkerThreadIOStrategy $ WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
在org.glassfish.grizzly.threadpool.AbstractThreadPool $ Worker.doWork(AbstractThreadPool.java:565)
在org.glassfish.grizzly.threadpool.AbstractThreadPool $ Worker.run(AbstractThreadPool.java:545)$ b $在java.lang.Thread.run(Thread.java:745)
导致:org。 jboss.weld.exceptions.DefinitionException:带有1个异常的异常列表:
异常0:
javax.enterprise.inject.UnsatisfiedResolutionException:Unable to o用限定符[@ javax.enterprise.inject.Default(),@ javax.enterprise.inject.Any()]解析'javax.persistence.EntityManager'的bean。
at org.springframework.data.jpa.repository.cdi.JpaRepositoryExtension.createRepositoryBean(JpaRepositoryExtension.java:118)
at org.springframework.data.jpa.repository.cdi.JpaRepositoryExtension.afterBeanDiscovery(JpaRepositoryExtension。 java:94)...

感谢您的努力

解决方案

从堆栈跟踪来看,你有CDI干扰/与Spring竞争。在应用程序中有 beans.xml 时启用CDI。删除这个来禁用CDI。

I am trying to implement a application using Spring (+JPA) and Hibernate using anotations.

I recentrly added the JPA part. Since then i get:

javax.enterprise.inject.UnsatisfiedResolutionException: Unable to resolve a bean for 'javax.persistence.EntityManager' with qualifiers [@javax.enterprise.inject.Default(), @javax.enterprise.inject.Any()].

Error. I also get following warnings:

WARN:   WELD-000411: Observer method [BackedAnnotatedMethod] protected org.springframework.data.repository.cdi.CdiRepositoryExtensionSupport.processAnnotatedType(@Observes ProcessAnnotatedType<Object>) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.
WARN:   WELD-000411: Observer method [BackedAnnotatedMethod] private org.glassfish.jersey.gf.cdi.internal.CdiComponentProvider.processAnnotatedType(@Observes ProcessAnnotatedType<Object>) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.
WARN:   WELD-000411: Observer method [BackedAnnotatedMethod] public org.glassfish.jms.injection.JMSCDIExtension.processAnnotatedType(@Observes ProcessAnnotatedType<Object>) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.
WARN:   WELD-000411: Observer method [BackedAnnotatedMethod] org.glassfish.sse.impl.ServerSentEventCdiExtension.processAnnotatedType(@Observes ProcessAnnotatedType<Object>, BeanManager) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.

I'm not sure if these two things are related but I thought I would ad the warnings.

Hereis my application-context.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-4.1.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.1.xsd">

    <!-- Package needed to be scanned for annotation -->
    <context:component-scan base-package="com.redast"/>
    <jpa:repositories base-package="com.redast"/>
    <!-- Use annotation for configuration-->
    <!--<context:annotation-config/>-->
    <context:spring-configured/>


    <!-- Data Source Declaration -->
    <bean name="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver" />
        <property name="url" value="jdbc:mysql://localhost:3306/redast" />
        <property name="username" value="xxxxxx" />
        <property name="password" value="xxxxxx" />
    </bean>




    <!-- Session Factory Declaration -->
    <bean id="SessionFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="packagesToScan">
            <list>
                <value>com.redast.model</value>
                <value>com.redast.service</value>
                <value>com.redast.dao</value>
            </list>
        </property>
    <!--        <property name="persistenceUnitPostProcessors">
            <list>
                <bean class="org.springframework.data.jpa.support.ClasspathScanningPersistenceUnitPostProcessor">
                    <constructor-arg value="com.redast" />
                </bean>
            </list>
        </property>-->

        <property name="jpaVendorAdapter">
            <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" />
        </property>
        <property name="jpaProperties">
            <props>
                <prop key="hibernate.hbm2ddl.auto">create-drop</prop>
                <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
                <prop key="hibernate.show_sql">true</prop>
                <prop key="format_sql">true</prop>
                <prop key="use_sql_comments">true</prop>
            </props>
        </property>

    </bean>

    <!-- Enable the configuration of transactional behavior based on annotations -->
    <tx:annotation-driven transaction-manager="txManager"/>

    <!-- Transaction Manager is defined -->
    <bean id="txManager" class="org.springframework.orm.jpa.JpaTransactionManager">
        <property name="SessionFactory" ref="SessionFactory"/>
    </bean>
    <!--
    <bean id="transactionTemplate" class="org.springframework.transaction.support.TransactionTemplate">
        <property name="transactionManager" ref="txManager"/>
    </bean>
    -->

    <bean id="persistenceExceptionTranslationPostProcessor"
          class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor" />
</beans>

I am rather new to Spring and hibernate, so my .xml file might well be arrornous. (Difficult for me to, from looking at tutorials and different sources, what exactly it is I need and what not.)

Here one of my DAOs

import com.redast.model.Announcement;
import org.springframework.data.jpa.repository.JpaRepository;

public interface AnnouncementDAO extends JpaRepository<Announcement, Long>{

}

And here the full error:

Warnung:   Ignore WEB-INF/sun-web.xml in archive /C:/Ben/NetBeansProjects/redast/target/redast-1.0-SNAPSHOT/, as WLS counterpart runtime xml WEB-INF/glassfish-web.xml is present in the same archive.
Information:   14:14:05.019 [admin-listener(2)] DEBUG o.s.core.env.StandardEnvironment - Adding [systemProperties] PropertySource with lowest search precedence
Information:   14:14:05.032 [admin-listener(2)] DEBUG o.s.core.env.StandardEnvironment - Adding [systemEnvironment] PropertySource with lowest search precedence
Information:   14:14:05.032 [admin-listener(2)] DEBUG o.s.core.env.StandardEnvironment - Initialized StandardEnvironment with PropertySources [systemProperties,systemEnvironment]
Information:   14:14:05.053 [admin-listener(2)] INFO  o.s.d.j.r.cdi.JpaRepositoryExtension - Activating CDI extension for Spring Data JPA repositories.
WARN:   WELD-000411: Observer method [BackedAnnotatedMethod] protected org.springframework.data.repository.cdi.CdiRepositoryExtensionSupport.processAnnotatedType(@Observes ProcessAnnotatedType<Object>) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.
WARN:   WELD-000411: Observer method [BackedAnnotatedMethod] private org.glassfish.jersey.gf.cdi.internal.CdiComponentProvider.processAnnotatedType(@Observes ProcessAnnotatedType<Object>) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.
WARN:   WELD-000411: Observer method [BackedAnnotatedMethod] public org.glassfish.jms.injection.JMSCDIExtension.processAnnotatedType(@Observes ProcessAnnotatedType<Object>) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.
WARN:   WELD-000411: Observer method [BackedAnnotatedMethod] org.glassfish.sse.impl.ServerSentEventCdiExtension.processAnnotatedType(@Observes ProcessAnnotatedType<Object>, BeanManager) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.
Information:   14:14:05.431 [admin-listener(2)] DEBUG o.s.d.r.c.CdiRepositoryExtensionSupport - Discovered repository type 'com.redast.dao.ProcessDAO' with qualifiers [@javax.enterprise.inject.Default(), @javax.enterprise.inject.Any()].
Information:   14:14:05.437 [admin-listener(2)] DEBUG o.s.d.r.c.CdiRepositoryExtensionSupport - Discovered repository type 'com.redast.dao.AssetFragmentDAO' with qualifiers [@javax.enterprise.inject.Default(), @javax.enterprise.inject.Any()].
Information:   14:14:05.463 [admin-listener(2)] DEBUG o.s.d.r.c.CdiRepositoryExtensionSupport - Discovered repository type 'com.redast.dao.RoleDAOImpl' with qualifiers [@javax.enterprise.inject.Default(), @javax.enterprise.inject.Any()].
Information:   14:14:05.484 [admin-listener(2)] DEBUG o.s.d.r.c.CdiRepositoryExtensionSupport - Discovered repository type 'com.redast.dao.FragmentValueDefDAO' with qualifiers [@javax.enterprise.inject.Default(), @javax.enterprise.inject.Any()].
Information:   14:14:05.489 [admin-listener(2)] DEBUG o.s.d.r.c.CdiRepositoryExtensionSupport - Discovered repository type 'com.redast.dao.FragmentDAO' with qualifiers [@javax.enterprise.inject.Default(), @javax.enterprise.inject.Any()].
Information:   14:14:05.490 [admin-listener(2)] DEBUG o.s.d.r.c.CdiRepositoryExtensionSupport - Discovered repository type 'com.redast.dao.ProcessNodeDAO' with qualifiers [@javax.enterprise.inject.Default(), @javax.enterprise.inject.Any()].
Information:   14:14:05.494 [admin-listener(2)] DEBUG o.s.d.r.c.CdiRepositoryExtensionSupport - Discovered repository type 'com.redast.dao.AnnouncementDAO' with qualifiers [@javax.enterprise.inject.Default(), @javax.enterprise.inject.Any()].
Information:   14:14:05.499 [admin-listener(2)] DEBUG o.s.d.r.c.CdiRepositoryExtensionSupport - Discovered repository type 'com.redast.dao.AssetDAO' with qualifiers [@javax.enterprise.inject.Default(), @javax.enterprise.inject.Any()].
Information:   14:14:05.506 [admin-listener(2)] DEBUG o.s.d.r.c.CdiRepositoryExtensionSupport - Discovered repository type 'com.redast.dao.UserDAOImpl' with qualifiers [@javax.enterprise.inject.Default(), @javax.enterprise.inject.Any()].
Schwerwiegend:   Exception during lifecycle processing
org.glassfish.deployment.common.DeploymentException: CDI definition failure:Exception List with 1 exceptions:
Exception 0 :
javax.enterprise.inject.UnsatisfiedResolutionException: Unable to resolve a bean for 'javax.persistence.EntityManager' with qualifiers [@javax.enterprise.inject.Default(), @javax.enterprise.inject.Any()].
    at org.springframework.data.jpa.repository.cdi.JpaRepositoryExtension.createRepositoryBean(JpaRepositoryExtension.java:118)
    at org.springframework.data.jpa.repository.cdi.JpaRepositoryExtension.afterBeanDiscovery(JpaRepositoryExtension.java:94)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    at org.jboss.weld.injection.MethodInjectionPoint.invokeOnInstanceWithSpecialValue(MethodInjectionPoint.java:90)
    at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:271)
    at org.jboss.weld.event.ExtensionObserverMethodImpl.sendEvent(ExtensionObserverMethodImpl.java:121)
    at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:258)
    at org.jboss.weld.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:237)
    at org.jboss.weld.event.ObserverNotifier.notifyObserver(ObserverNotifier.java:174)
    at org.jboss.weld.event.ObserverNotifier.notifyObservers(ObserverNotifier.java:133)
    at org.jboss.weld.event.ObserverNotifier.fireEvent(ObserverNotifier.java:107)
    at org.jboss.weld.bootstrap.events.AbstractContainerEvent.fire(AbstractContainerEvent.java:54)
    at org.jboss.weld.bootstrap.events.AbstractDefinitionContainerEvent.fire(AbstractDefinitionContainerEvent.java:42)
    at org.jboss.weld.bootstrap.events.AfterBeanDiscoveryImpl.fire(AfterBeanDiscoveryImpl.java:59)
    at org.jboss.weld.bootstrap.WeldStartup.deployBeans(WeldStartup.java:396)
    at org.jboss.weld.bootstrap.WeldBootstrap.deployBeans(WeldBootstrap.java:83)
    at org.glassfish.weld.WeldDeployer.event(WeldDeployer.java:222)
    at org.glassfish.kernel.event.EventsImpl.send(EventsImpl.java:131)
    at org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:328)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:496)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:219)
    at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:491)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:539)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:535)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:360)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$2.execute(CommandRunnerImpl.java:534)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:565)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:557)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:360)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:556)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1464)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1300(CommandRunnerImpl.java:109)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1846)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1722)
    at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:534)
    at com.sun.enterprise.v3.admin.AdminAdapter.onMissingResource(AdminAdapter.java:224)
    at org.glassfish.grizzly.http.server.StaticHttpHandlerBase.service(StaticHttpHandlerBase.java:189)
    at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459)
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167)
    at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:201)
    at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:175)
    at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)
    at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112)
    at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
    at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:561)
    at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:565)
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545)
    at java.lang.Thread.run(Thread.java:745)
    at org.glassfish.weld.WeldDeployer.event(WeldDeployer.java:234)
    at org.glassfish.kernel.event.EventsImpl.send(EventsImpl.java:131)
    at org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:328)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:496)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:219)
    at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:491)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:539)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:535)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:360)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$2.execute(CommandRunnerImpl.java:534)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:565)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:557)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:360)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:556)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1464)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1300(CommandRunnerImpl.java:109)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1846)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1722)
    at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:534)
    at com.sun.enterprise.v3.admin.AdminAdapter.onMissingResource(AdminAdapter.java:224)
    at org.glassfish.grizzly.http.server.StaticHttpHandlerBase.service(StaticHttpHandlerBase.java:189)
    at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459)
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167)
    at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:201)
    at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:175)
    at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)
    at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112)
    at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
    at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:561)
    at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:565)
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545)
    at java.lang.Thread.run(Thread.java:745)
Caused by: org.jboss.weld.exceptions.DefinitionException: Exception List with 1 exceptions:
Exception 0 :
javax.enterprise.inject.UnsatisfiedResolutionException: Unable to resolve a bean for 'javax.persistence.EntityManager' with qualifiers [@javax.enterprise.inject.Default(), @javax.enterprise.inject.Any()].
    at org.springframework.data.jpa.repository.cdi.JpaRepositoryExtension.createRepositoryBean(JpaRepositoryExtension.java:118)
    at org.springframework.data.jpa.repository.cdi.JpaRepositoryExtension.afterBeanDiscovery(JpaRepositoryExtension.java:94)...

Thanks for your effort

解决方案

Judging from the stacktrace you have CDI interfering/competing with Spring. CDI is enabled when you have a beans.xml in your application. Remove this to disable CDI.

这篇关于无法解析'javax.persistence.EntityManager'的bean的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆