@Autowired mal géré - Java - Programmation
Marsh Posté le 21-02-2012 à 11:25:15
c'est ça ton problème
Citation : Could not resolve placeholder 'service.consulteractesclient.limite' |
Donc ta classe a besoin de ces paramètres, probablement utilisés quelque part dans ton xml.
Par contre, tu veux faire de l'autowire sur un bea que tu as déjà injecté en conf. ceinture bretelles?
Marsh Posté le 21-02-2012 à 11:30:08
non je n'ai pas besoin de
Citation :
Could not resolve placeholder 'service.consulteractesclient.limite'
car non utilisé dans ma classe TOTO.ce params est utilisé dans LOLO qui n'est pas Autowired dans ma classe EXTRACT mais qui est quand même dans le même package de TOTO. Oula difficile a expliquer mon charabia là ^^. Tu vois ce que je veux dire ?
Marsh Posté le 21-02-2012 à 11:35:02
je vois que tu déclares une classe qui utilise une property que n'est pas valuée.
Tu n'as pas besoin de cette classe ? il faut la supprimée, parce que manifestement, soit elle est dans un package qui est chargé à la création du contexte, soit elle est déclarée dans ta conf xml.
Dans les deux cas, faut virer cette classe ?
Marsh Posté le 21-02-2012 à 11:39:10
Non ma classe TOTO n'utilise pas cette property, mais c'est LOLO qui l'utilise. Seulement ma classe EXTRACT utilise seulement TOTO et pas LULU. Je pense que c'est à la création du contexte que le package est scanné en totalité (com.toto).
Marsh Posté le 21-02-2012 à 11:55:24
Dans les deux cas, faut virer cette classe ?
==> Je ne peux pas, elle doit rester la et dans ce même package (archi oblige)
Marsh Posté le 21-02-2012 à 13:54:20
Je ne peux pas enlever @Controller, @Repository ou @Service sur les autres classes, elles sont utilisées par d'autre jar
Marsh Posté le 21-02-2012 à 14:13:26
Actuellement c'est ce que je fais mais je ne trouve pas ça propre. Je me renseigne sur @Ressource, vous connaissez peut être ?
Marsh Posté le 21-02-2012 à 11:04:12
Bonjour,
Je débute avec spring et j'ai quelques soucis lors du déploiement d'un jar sous weblogic. J'ai une classe qui @Autowired un service situé dans un package qui contient d'autre service @Autowired dont je n'ai pas besoin. Ces autres services prennent des params dont je n'ai pas besoin, du coup lors de l'injection j'ai l'erreur comme quoi ces params sont non définis.
Mon archi:
1er Jar - Classe EXTRACT.java
2e jar - package com.toto
4 classe => TOTO.java -> 1 Service
TITI.java -> 1 Service avec param (@Values)
LOLO.java -> 1 Service avec param (@Values)
LULU.java -> 1 Service
mon conf spring pour le jar:
Et voici ma stack trace:
2012-02-21 08:18:07;;;;ERROR;ContextLoader:220;Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'titiImpl': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private int com.toto.impl.titiImpl.limite; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'service.consulteractesclient.limite'
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:285)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1074)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:580)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:276)
at com.bouygtel.refclient.transverse.composant.spring.initialisation.RefclientContextLoaderListener.createWebApplicationContext(RefclientContextLoaderListener.java:73)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
at weblogic.servlet.internal.EventsManager$FireContextListenerAction.run(EventsManager.java:481)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.EventsManager.notifyContextCreatedEvent(EventsManager.java:181)
at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1863)
at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:3126)
at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1512)
at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:486)
at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:425)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:41)
at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:119)
at weblogic.application.internal.flow.ScopedModuleDriver.start(ScopedModuleDriver.java:200)
at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:247)
at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:425)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:41)
at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:119)
at weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:27)
at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:1267)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:41)
at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:409)
at weblogic.application.internal.EarDeployment.activate(EarDeployment.java:58)
at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:161)
at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:79)
at weblogic.deploy.internal.targetserver.operations.AbstractOperation.activate(AbstractOperation.java:569)
at weblogic.deploy.internal.targetserver.operations.ActivateOperation.activateDeployment(ActivateOperation.java:150)
at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doCommit(ActivateOperation.java:116)
at weblogic.deploy.internal.targetserver.operations.AbstractOperation.commit(AbstractOperation.java:323)
at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentCommit(DeploymentManager.java:844)
at weblogic.deploy.internal.targetserver.DeploymentManager.activateDeploymentList(DeploymentManager.java:1253)
at weblogic.deploy.internal.targetserver.DeploymentManager.handleCommit(DeploymentManager.java:440)
at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.commit(DeploymentServiceDispatcher.java:163)
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doCommitCallback(DeploymentReceiverCallbackDeliverer.java:195)
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$100(DeploymentReceiverCallbackDeliverer.java:13)
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$2.run(DeploymentReceiverCallbackDeliverer.java:68)
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:528)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private int com.toto.impl.titiImpl.limite; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'service.titi.limite'
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:502)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:84)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:282)
... 51 more
Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'service.titi.limite'
Auriez vous une idée pour que ma classe Extract @Autowired juste ma classe TOTO (Interface) ?
Merci d'avance