2017-02-16 140 views
0

我有一个包含依赖JAR的WAR。 JAR包含交叉问题,也由我撰写。我使用Spring 4.2.3和Spring-data-jpa 1.9.1,我的配置是基于注释的。我部署到Wildfly 10.1.0。Spring Data非自动装配实体来自依赖JAR

JAR编译良好,我将它安装到我的本地Maven回购。从WAR中,JAR作为依赖包含在内。到现在为止还挺好。

在WAR的Spring配置文件中,我导入JAR的Spring配置文件 。现在,当我有普通的Spring Beans(Service或Component)时,一切正常,Spring发现并解决了我的JAR中的所有依赖和Spring Beans,随后我可以从WAR中的代码调用它。但是,只要我添加一个Repository和一个实体,Spring就不会找到该实体,随后我的WAR编译,但它不会部署。我必须注意到,如果我把JAR代码直接放在我的WAR中,所有这些都可以工作。我想我错过了一个配置,但我不知道还有什么地方需要注意。

任何援助将不胜感激。代码和堆栈跟踪如下:

部署时,出现以下错误: 创建名为'synapseRepo'的bean时出错:init方法调用失败;嵌套异常是java.lang.IllegalArgumentException:不是托管类型:类hyphen.synapse.data.model.Role

因此,错误是非常简单的,但我不知道它是什么,我错过了让Spring知道我的实体。

谢谢。对于配置

JAR代码:用于存储库

@Configuration 
@ComponentScan("hyphen.synapse") 
@EnableTransactionManagement 
@EnableJpaRepositories("hyphen.synapse.data") 
@PropertySource("classpath:application.properties") 
public class SynapseApplicationConfig { 
... 
} 

JAR代码:对于实体

package hyphen.synapse.data.repo; 

import hyphen.synapse.data.model.*; 
import org.springframework.data.repository.*; 

public interface SynapseRepo extends CrudRepository<Role, Long> { 

} 

JAR代码:

package hyphen.synapse.data.model; 

import javax.persistence.*; 

@Entity 
@Table(name = "ROLE") 
public class Role extends SynapseBaseEntity { 
    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    private long id; 

    @Column(name = "NAME") 
    private String name; 


    public long getId() { 
     return id; 
    } 

    public void setId(long id) { 
     this.id = id; 
    } 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 
} 

的配置WAR代码:

@Configuration 
@EnableTransactionManagement 
@EnableJpaRepositories("hyphen.cmd.data") 
@PropertySource("classpath:application.properties") 
@Import(hyphen.synapse.app.config.SynapseApplicationConfig.class) 
public class ApplicationConfig { 
... 
} 

WAR代码注入:

package hyphen.synapse.data.dao; 

import ...; 

@Service 
public class SynapseDao { 
    @Inject 
    private SynapseRepo synapseRepo; 

    @Inject 
    private EmailService emailService; 

正如一个侧面说明,EmailService也是在JAR,这是正确的自动装配定义。

下面的代码行导致该错误:

public interface SynapseRepo extends CrudRepository<Role, Long> ... 

春天是无法自动装配实体,在这种情况下,角色。我也知道角色不包含任何Spring注释。不过,我在WAR中使用完全相同的代码,并且工作正常,但是使用包含在依赖关系JAR中的代码从WAR中调用它似乎有问题。

栈跟踪:

2017-02-16 22:38:19,666 WARN [org.springframework.web.context.support.XmlWebApplicationContext] (ServerService Thread Pool -- 218) Exception encountered during context initialization - cancelling refresh at 
tempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'synapseServiceImpl': Injection of autowired dependencies failed; nested exception is org.springframework.beans.f 
actory.BeanCreationException: Could not autowire field: private hyphen.synapse.data.dao.SynapseDao hyphen.synapse.business.service.impl.SynapseServiceImpl.synapseDao; nested exception is org.springframework. 
beans.factory.BeanCreationException: Error creating bean with name 'synapseDao': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could 
not autowire field: private hyphen.synapse.data.repo.SynapseRepo hyphen.synapse.data.dao.SynapseDao.synapseRepo; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating b 
ean with name 'synapseRepo': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Not an managed type: class hyphen.synapse.data.model.Role 
2017-02-16 22:38:19,666 ERROR [org.springframework.web.servlet.DispatcherServlet] (ServerService Thread Pool -- 218) Context initialization failed: org.springframework.beans.factory.BeanCreationException: Er 
ror creating bean with name 'synapseServiceImpl': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private hy 
phen.synapse.data.dao.SynapseDao hyphen.synapse.business.service.impl.SynapseServiceImpl.synapseDao; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 
'synapseDao': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private hyphen.synapse.data.repo.SynapseRepo 
hyphen.synapse.data.dao.SynapseDao.synapseRepo; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'synapseRepo': Invocation of init method failed; nes 
ted exception is java.lang.IllegalArgumentException: Not an managed type: class hyphen.synapse.data.model.Role 
     at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:334) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1214) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) 
     at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) 
     at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 
     at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) 
     at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) 
     at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:772) 
     at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:838) 
     at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:537) 
     at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:667) 
     at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:633) 
     at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:681) 
     at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:552) 
     at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:493) 
     at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136) 
     at javax.servlet.GenericServlet.init(GenericServlet.java:244) 
     at io.undertow.servlet.core.LifecyleInterceptorInvocation.proceed(LifecyleInterceptorInvocation.java:117) 
     at org.wildfly.extension.undertow.security.RunAsLifecycleInterceptor.init(RunAsLifecycleInterceptor.java:78) 
     at io.undertow.servlet.core.LifecyleInterceptorInvocation.proceed(LifecyleInterceptorInvocation.java:103) 
     at io.undertow.servlet.core.ManagedServlet$DefaultInstanceStrategy.start(ManagedServlet.java:250) 
     at io.undertow.servlet.core.ManagedServlet.createServlet(ManagedServlet.java:133) 
     at io.undertow.servlet.core.DeploymentManagerImpl$2.call(DeploymentManagerImpl.java:546) 
     at io.undertow.servlet.core.DeploymentManagerImpl$2.call(DeploymentManagerImpl.java:517) 
     at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:42) 
     at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43) 
     at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) 
     at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) 
     at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) 
     at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) 
     at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) 
     at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) 
     at io.undertow.servlet.core.DeploymentManagerImpl.start(DeploymentManagerImpl.java:559) 
     at org.wildfly.extension.undertow.deployment.UndertowDeploymentService.startContext(UndertowDeploymentService.java:101) 
     at org.wildfly.extension.undertow.deployment.UndertowDeploymentService$1.run(UndertowDeploymentService.java:82) 
     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
     at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
     at java.lang.Thread.run(Thread.java:745) 
     at org.jboss.threads.JBossThread.run(JBossThread.java:320) 
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private hyphen.synapse.data.dao.SynapseDao hyphen.synapse.business.service.impl.SynapseServiceImpl.synapseDao; ne 
sted exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'synapseDao': Injection of autowired dependencies failed; nested exception is org.springframework.bean 
s.factory.BeanCreationException: Could not autowire field: private hyphen.synapse.data.repo.SynapseRepo hyphen.synapse.data.dao.SynapseDao.synapseRepo; nested exception is org.springframework.beans.factory.B 
eanCreationException: Error creating bean with name 'synapseRepo': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Not an managed type: class hyphen.synapse.data.mod 
el.Role 
     at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:573) 
     at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88) 
     at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:331) 
     ... 41 more 
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'synapseDao': Injection of autowired dependencies failed; nested exception is org.springframework.beans.facto 
ry.BeanCreationException: Could not autowire field: private hyphen.synapse.data.repo.SynapseRepo hyphen.synapse.data.dao.SynapseDao.synapseRepo; nested exception is org.springframework.beans.factory.BeanCrea 
tionException: Error creating bean with name 'synapseRepo': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Not an managed type: class hyphen.synapse.data.model.Role 
     at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:334) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1214) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) 
     at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) 
     at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 
     at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) 
     at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) 
     at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1192) 
     at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1116) 
     at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1014) 
     at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:545) 
     ... 43 more 
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private hyphen.synapse.data.repo.SynapseRepo hyphen.synapse.data.dao.SynapseDao.synapseRepo; nested exception is 
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'synapseRepo': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Not an managed 
type: class hyphen.synapse.data.model.Role 
     at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:573) 
     at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88) 
     at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:331) 
     ... 54 more 
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'synapseRepo': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Not 
an managed type: class hyphen.synapse.data.model.Role 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1578) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) 
     at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) 
     at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 
     at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) 
     at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) 
     at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1192) 
     at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1116) 
     at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1014) 
     at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:545) 
     ... 56 more 
Caused by: java.lang.IllegalArgumentException: Not an managed type: class hyphen.synapse.data.model.Role 
     at org.hibernate.jpa.internal.metamodel.MetamodelImpl.managedType(MetamodelImpl.java:219) 
     at org.springframework.data.jpa.repository.support.JpaMetamodelEntityInformation.<init>(JpaMetamodelEntityInformation.java:68) 
     at org.springframework.data.jpa.repository.support.JpaEntityInformationSupport.getEntityInformation(JpaEntityInformationSupport.java:67) 
     at org.springframework.data.jpa.repository.support.JpaRepositoryFactory.getEntityInformation(JpaRepositoryFactory.java:152) 
     at org.springframework.data.jpa.repository.support.JpaRepositoryFactory.getTargetRepository(JpaRepositoryFactory.java:99) 
     at org.springframework.data.jpa.repository.support.JpaRepositoryFactory.getTargetRepository(JpaRepositoryFactory.java:81) 
     at org.springframework.data.repository.core.support.RepositoryFactorySupport.getRepository(RepositoryFactorySupport.java:185) 
     at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.initAndReturn(RepositoryFactoryBeanSupport.java:251) 
     at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.afterPropertiesSet(RepositoryFactoryBeanSupport.java:237) 
     at org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean.afterPropertiesSet(JpaRepositoryFactoryBean.java:92) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574) 
     ... 66 more 

2017-02-16 22:38:19,666 ERROR [org.jboss.msc.service.fail] (ServerService Thread Pool -- 218) MSC000001: Failed to start service jboss.undertow.deployment.default-server.default-host./masterdatamanager: org. 
jboss.msc.service.StartException in service jboss.undertow.deployment.default-server.default-host./masterdatamanager: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 's 
ynapseServiceImpl': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private hyphen.synapse.data.dao.SynapseD 
ao hyphen.synapse.business.service.impl.SynapseServiceImpl.synapseDao; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'synapseDao': Injection of au 
towired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private hyphen.synapse.data.repo.SynapseRepo hyphen.synapse.data.dao.Synaps 
eDao.synapseRepo; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'synapseRepo': Invocation of init method failed; nested exception is java.lang.Ill 
egalArgumentException: Not an managed type: class hyphen.synapse.data.model.Role 
     at org.wildfly.extension.undertow.deployment.UndertowDeploymentService$1.run(UndertowDeploymentService.java:85) 
     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
     at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
     at java.lang.Thread.run(Thread.java:745) 
     at org.jboss.threads.JBossThread.run(JBossThread.java:320) 
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'synapseServiceImpl': Injection of autowired dependencies failed; nested exception is org.springframework.bea 
ns.factory.BeanCreationException: Could not autowire field: private hyphen.synapse.data.dao.SynapseDao hyphen.synapse.business.service.impl.SynapseServiceImpl.synapseDao; nested exception is org.springframew 
ork.beans.factory.BeanCreationException: Error creating bean with name 'synapseDao': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: C 
ould not autowire field: private hyphen.synapse.data.repo.SynapseRepo hyphen.synapse.data.dao.SynapseDao.synapseRepo; nested exception is org.springframework.beans.factory.BeanCreationException: Error creati 
ng bean with name 'synapseRepo': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Not an managed type: class hyphen.synapse.data.model.Role 
     at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:334) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1214) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) 
     at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) 
     at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 
     at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) 
     at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) 
     at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:772) 
     at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:838) 
     at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:537) 
     at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:667) 
     at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:633) 
     at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:681) 
     at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:552) 
     at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:493) 
     at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136) 
     at javax.servlet.GenericServlet.init(GenericServlet.java:244) 
     at io.undertow.servlet.core.LifecyleInterceptorInvocation.proceed(LifecyleInterceptorInvocation.java:117) 
     at org.wildfly.extension.undertow.security.RunAsLifecycleInterceptor.init(RunAsLifecycleInterceptor.java:78) 
     at io.undertow.servlet.core.LifecyleInterceptorInvocation.proceed(LifecyleInterceptorInvocation.java:103) 
     at io.undertow.servlet.core.ManagedServlet$DefaultInstanceStrategy.start(ManagedServlet.java:250) 
     at io.undertow.servlet.core.ManagedServlet.createServlet(ManagedServlet.java:133) 
     at io.undertow.servlet.core.DeploymentManagerImpl$2.call(DeploymentManagerImpl.java:546) 
     at io.undertow.servlet.core.DeploymentManagerImpl$2.call(DeploymentManagerImpl.java:517) 
     at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:42) 
     at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43) 
     at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) 
     at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) 
     at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) 
     at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) 
     at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) 
     at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) 
     at io.undertow.servlet.core.DeploymentManagerImpl.start(DeploymentManagerImpl.java:559) 
     at org.wildfly.extension.undertow.deployment.UndertowDeploymentService.startContext(UndertowDeploymentService.java:101) 
     at org.wildfly.extension.undertow.deployment.UndertowDeploymentService$1.run(UndertowDeploymentService.java:82) 
     ... 6 more 
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private hyphen.synapse.data.dao.SynapseDao hyphen.synapse.business.service.impl.SynapseServiceImpl.synapseDao; ne 
sted exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'synapseDao': Injection of autowired dependencies failed; nested exception is org.springframework.bean 
s.factory.BeanCreationException: Could not autowire field: private hyphen.synapse.data.repo.SynapseRepo hyphen.synapse.data.dao.SynapseDao.synapseRepo; nested exception is org.springframework.beans.factory.B 
eanCreationException: Error creating bean with name 'synapseRepo': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Not an managed type: class hyphen.synapse.data.mod 
el.Role 
+0

中的说明进行操作如果将@Repository添加到SynapseRepo接口中,该怎么办? –

+0

试过了,结果一样。实际上它并不是必需的,因为它扩展了一个扩展了Repository的接口,因此继承了它。 – Eugene

回答

1

SynapseRepoCommandRepo接口应该有@Repository注解。

但问题的根源在于,您的WAR文件中有JPA配置,而JAR中有JPA配置。因为名称,属性文件等会导致bean相互覆盖。你需要花时间让它们独一无二。您可以按照https://stackoverflow.com/a/19976132/724835

+0

感谢您的回复。 请您详细说明第1点,我不确定您的意思。 关于第2点,我试过了,但结果相同,尽管它不是 ,因为它是通过扩展CrudRepository继承的。 – Eugene

+0

仔细查看错误,我更新了我的答案。 – JustinKSU

+0

谢谢JustinKSU, 我试过你的建议,但错误依然存在。我还从Role类声明中删除了“扩展SynapseBaseEntity”。 SynapseBaseEntity是一个实现Serializable的空类,但是我已经将其删除了。 其中类角色是参考的唯一地方是在SynapseRepo: 公共接口SynapseRepo扩展CrudRepository {} 关于第二个想法 – Eugene

相关问题