Java Spring autowire不使用安全配置

Java Spring autowire不使用安全配置,java,spring-mvc,annotations,autowired,shiro,Java,Spring Mvc,Annotations,Autowired,Shiro,我得到一个异常java.lang.IllegalArgumentException:不是实体错误。我已经阅读了我的代码,我认为我有所有正确的注释。我正在使用shiro进行身份验证,运行时会抛出一个错误。这是工作之前,我不明白的问题,现在 这是我的pojo课程: @Entity @Table(name ="message") public class Message implements Serializable{ ... } 这是我的存储库: @Repository

我得到一个异常
java.lang.IllegalArgumentException:不是实体错误
。我已经阅读了我的代码,我认为我有所有正确的注释。我正在使用shiro进行身份验证,运行时会抛出一个错误。这是工作之前,我不明白的问题,现在

这是我的pojo课程:

 @Entity
 @Table(name ="message") 
 public class Message implements Serializable{  
     ...
 } 
这是我的存储库:

@Repository
@Component(value = "messageRepository")
public interface MessageRepository extends JpaRepository<User, Long> {
    ...
}
@存储库
@组件(value=“messageRepository”)
公共接口MessageRepository扩展了JpaRepository{
...
}
我的web安全配置的片段,它引发了错误

<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager" depends-on="messageRepository">
    <property name="realm" ref="myRealm" />
</bean>

这就是错误:

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor#0' defined in ServletContext resource [/WEB-INF/web-security-config.xml]: Cannot resolve reference to bean 'securityManager' while setting bean property 'securityManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'messageRepository': FactoryBean threw exception on object creation; nested exception is java.lang.IllegalArgumentException: Not an entity: class com.mycompany.messages.model.Message
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:329) ~[spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107) ~[spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1387) ~[spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1128) ~[spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519) ~[spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458) ~[spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295) ~[spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223) ~[spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292) ~[spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:198) ~[spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
    at org.springframework.aop.framework.autoproxy.BeanFactoryAdvisorRetrievalHelper.findAdvisorBeans(BeanFactoryAdvisorRetrievalHelper.java:86) ~[spring-aop-3.2.3.RELEASE.jar:3.2.3.RELEASE]
    at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.findCandidateAdvisors(AbstractAdvisorAutoProxyCreator.java:101) ~[spring-aop-3.2.3.RELEASE.jar:3.2.3.RELEASE]
    at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.findEligibleAdvisors(AbstractAdvisorAutoProxyCreator.java:87) ~[spring-aop-3.2.3.RELEASE.jar:3.2.3.RELEASE]
    at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.getAdvicesAndAdvisorsForBean(AbstractAdvisorAutoProxyCreator.java:69) ~[spring-aop-3.2.3.RELEASE.jar:3.2.3.RELEASE]
    at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.wrapIfNecessary(AbstractAutoProxyCreator.java:359) ~[spring-aop-3.2.3.RELEASE.jar:3.2.3.RELEASE]
    at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessAfterInitialization(AbstractAutoProxyCreator.java:322) ~[spring-aop-3.2.3.RELEASE.jar:3.2.3.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:409) ~[spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1488) ~[spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:521) ~[spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
    ... 50 common frames omitted
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'messageRepository': FactoryBean threw exception on object creation; nested exception is java.lang.IllegalArgumentException: Not an entity: class com.mycompany.messages.model.Message
    at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:149) ~[spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
    at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:102) ~[spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1454) ~[spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:306) ~[spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) ~[spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:285) ~[spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) ~[spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323) ~[spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
    ... 68 common frames omitted
Caused by: java.lang.IllegalArgumentException: Not an entity: class com.mycompany.messages.model.Message
    at org.hibernate.ejb.metamodel.MetamodelImpl.entity(MetamodelImpl.java:158) ~[hibernate-entitymanager-4.0.1.Final.jar:4.0.1.Final]
    at org.springframework.data.jpa.repository.support.JpaMetamodelEntityInformation.<init>(JpaMetamodelEntityInformation.java:52) ~[spring-data-jpa-1.1.0.M1.jar:na]
    at org.springframework.data.jpa.repository.support.JpaEntityInformationSupport.getMetadata(JpaEntityInformationSupport.java:61) ~[spring-data-jpa-1.1.0.M1.jar:na]
    at org.springframework.data.jpa.repository.support.JpaRepositoryFactory.getEntityInformation(JpaRepositoryFactory.java:145) ~[spring-data-jpa-1.1.0.M1.jar:na]
    at org.springframework.data.jpa.repository.support.JpaRepositoryFactory.getTargetRepository(JpaRepositoryFactory.java:83) ~[spring-data-jpa-1.1.0.M1.jar:na]
    at org.springframework.data.jpa.repository.support.JpaRepositoryFactory.getTargetRepository(JpaRepositoryFactory.java:66) ~[spring-data-jpa-1.1.0.M1.jar:na]
    at org.springframework.data.repository.core.support.RepositoryFactorySupport.getRepository(RepositoryFactorySupport.java:131) ~[spring-data-commons-core-1.2.1.RELEASE.jar:na]
    at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.getObject(RepositoryFactoryBeanSupport.java:114) ~[spring-data-commons-core-1.2.1.RELEASE.jar:na]
    at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.getObject(RepositoryFactoryBeanSupport.java:38) ~[spring-data-commons-core-1.2.1.RELEASE.jar:na]
    at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:142) ~[spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
原因:org.springframework.beans.factory.BeanCreationException:创建名为“org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceVisor#0”的bean时出错,该bean在ServletContext资源[/WEB-INF/WEB安全配置.xml]中定义:设置bean属性“securityManager”时无法解析对bean“securityManager”的引用;嵌套异常为org.springframework.beans.factory.BeanCreationException:创建名为“messageRepository”的bean时出错:FactoryBean在创建对象时引发异常;嵌套异常是java.lang.IllegalArgumentException:不是实体:class com.mycompany.messages.model.Message
在org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolverence(BeanDefinitionValueResolver.java:329)~[spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
在org.springframework.beans.factory.support.beandDefinitionValueResolver.ResolveValueIfNeeded(beandDefinitionValueResolver.java:107)~[spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1387)~[spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1128)~[spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)~[spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)~[spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
在org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)~[spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
在org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)~[spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
在org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)~[spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
在org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:198)~[spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
在org.springframework.aop.framework.autoproxy.BeanFactoryAdvisorRetrievalHelper.FindVisorBeans(BeanFactoryAdvisorRetrievalHelper.java:86)~[spring-aop-3.2.3.RELEASE.jar:3.2.3.RELEASE]
在org.springframework.aop.framework.autoproxy.AbstractAdvisorUtoProxyCreator.findCandidateAdvisors(AbstractAdvisorUtoProxyCreator.java:101)~[spring-aop-3.2.3.RELEASE.jar:3.2.3.RELEASE]
在org.springframework.aop.framework.autoproxy.AbstractAdvisorautorProxyCreator.findEligibleAdvisors(AbstractAdvisorautorProxyCreator.java:87)~[spring-aop-3.2.3.RELEASE.jar:3.2.3.RELEASE]
在org.springframework.aop.framework.autoproxy.AbstractAdvisorautorProxyCreator.GetAdvicesandAdvisorForBean(AbstractAdvisorautorProxyCreator.java:69)~[spring-aop-3.2.3.RELEASE.jar:3.2.3.RELEASE]
在org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.wrapIfNecessary(AbstractAutoProxyCreator.java:359)~[spring-aop-3.2.3.RELEASE.jar:3.2.3.RELEASE]
在org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessAfterInitialization(AbstractAutoProxyCreator.java:322)~[spring-aop-3.2.3.RELEASE.jar:3.2.3.RELEASE]
在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:409)~[spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1488)~[spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:521)~[spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
... 省略50个公共框架
原因:org.springframework.beans.factory.BeanCreationException:创建名为“messageRepository”的bean时出错:FactoryBean在创建对象时引发异常;嵌套异常是java.lang.IllegalArgumentException:不是实体:class com.mycompany.messages.model.Message
在org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:149)~[spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
在org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:102)~[spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
在org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1454)~[spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
在org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:306)~[spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
在org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)~[spring-beans-3.2.3.RELEASE.jar:3.2
<persistence-unit name="persistance-unit" transaction-type="RESOURCE_LOCAL">
  ....
  <class>com.mycompany.messages.model.Message</class>
  ....
</persistence-unit>
@Repository("messageRepository")
public class MessageRepositoryImpl implements MessageRepository {
    ...
    //Implement the interface methods
}