IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Spring Web Java Discussion :

No service implements the interface


Sujet :

Spring Web Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2004
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 45
    Par défaut No service implements the interface
    Bonjour,

    j'essaie tant bien que mal de réaliser le tuto sur Tapestry Spring et JPA : http://loic-frering.developpez.com/t...ring-tapestry/.

    Je rencontre une erreur lors de l'accès à l'écran de gestion des utilisateurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    No service implements the interface test.sample.skillbrowser.services.UserManager.
    Voici le code (ou plutot les annotations) de mon service UserManagerImpl
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    @Service("userManager")
    @Transactional(propagation = Propagation.REQUIRED, readOnly = true)
    public class UserManagerImpl implements UserManager {
    Y'a quelque chose qui cloche docteur?

  2. #2
    Membre chevronné Avatar de supermanu
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    330
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 330
    Par défaut
    Visiblement tu n'utilises pas le même nom de package que dans le tuto : test.sample.skillbrowser au lieu de net.ilabs.skillbrowser.

    Ce n'est pas grave, sauf que tu dois modifier le fichier de configuration applicationContextJpa.xml.
    Et remplacer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <context:component-scan base-package="net.ilabs.skillbrowser" />
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <context:component-scan base-package="test.sample.skillbrowser" />
    Comme ça Spring va regarder dans ton package et instancier les bean qui comporte des annotations, dont UserManagerImpl.

  3. #3
    Membre averti
    Inscrit en
    Octobre 2004
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 45
    Par défaut
    Merci supermanu, mais non mon fichier applicationContextJpa.xml est correct. J'ai bien renommé le package du tuto mais j'ai vérifié et j'ai également fait la modif dans ce fichier.
    Voici l'erreur obtenue:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
     
    [ERROR] TapestryModule.RequestExceptionHandler Processing of request failed with uncaught exception: java.lang.ClassNotFoundException: caught an exception while obtaining a class file for com.test.sample.skillbrowser.web.pages.users.UsersIndex
    java.lang.RuntimeException: java.lang.ClassNotFoundException: caught an exception while obtaining a class file for com.test.sample.skillbrowser.web.pages.users.UsersIndex
    	at org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl.findClass(ComponentInstantiatorSourceImpl.java:296)
    	at org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl.findInstantiator(ComponentInstantiatorSourceImpl.java:272)
    	at $ComponentInstantiatorSource_120c51bd28b.findInstantiator($ComponentInstantiatorSource_120c51bd28b.java)
    	at org.apache.tapestry5.internal.services.PageElementFactoryImpl.newRootComponentElement(PageElementFactoryImpl.java:262)
    	at $PageElementFactory_120c51bd2c3.newRootComponentElement($PageElementFactory_120c51bd2c3.java)
    	at org.apache.tapestry5.internal.services.PageLoaderProcessor.loadRootComponent(PageLoaderProcessor.java:412)
    	at org.apache.tapestry5.internal.services.PageLoaderProcessor.loadPage(PageLoaderProcessor.java:390)
    	at org.apache.tapestry5.internal.services.PageLoaderImpl.loadPage(PageLoaderImpl.java:59)
    	at $PageLoader_120c51bd2c1.loadPage($PageLoader_120c51bd2c1.java)
    	at org.apache.tapestry5.internal.services.PagePoolCache.checkout(PagePoolCache.java:210)
    	at org.apache.tapestry5.internal.services.PagePoolImpl.checkout(PagePoolImpl.java:99)
    	at $PagePool_120c51bd2c0.checkout($PagePool_120c51bd2c0.java)
    	at org.apache.tapestry5.internal.services.RequestPageCacheImpl.get(RequestPageCacheImpl.java:51)
    	at $RequestPageCache_120c51bd2bf.get($RequestPageCache_120c51bd2bf.java)
    	at $RequestPageCache_120c51bd2b7.get($RequestPageCache_120c51bd2b7.java)
    	at org.apache.tapestry5.internal.services.RequestSecurityManagerImpl.checkForInsecureRequest(RequestSecurityManagerImpl.java:59)
    	at $RequestSecurityManager_120c51bd2b6.checkForInsecureRequest($RequestSecurityManager_120c51bd2b6.java)
    	at org.apache.tapestry5.services.TapestryModule$35.handle(TapestryModule.java:1777)
    	at $PageRenderRequestHandler_120c51bd2ba.handle($PageRenderRequestHandler_120c51bd2ba.java)
    	at $PageRenderRequestHandler_120c51bd2ad.handle($PageRenderRequestHandler_120c51bd2ad.java)
    	at org.apache.tapestry5.internal.services.PageRenderDispatcher.process(PageRenderDispatcher.java:92)
    	at org.apache.tapestry5.internal.services.PageRenderDispatcher.dispatch(PageRenderDispatcher.java:71)
    	at $Dispatcher_120c51bd2b3.dispatch($Dispatcher_120c51bd2b3.java)
    	at $Dispatcher_120c51bd2a6.dispatch($Dispatcher_120c51bd2a6.java)
    	at org.apache.tapestry5.services.TapestryModule$17.service(TapestryModule.java:1029)
    	at org.apache.tapestry5.internal.services.LocalizationFilter.service(LocalizationFilter.java:42)
    	at $RequestHandler_120c51bd2a7.service($RequestHandler_120c51bd2a7.java)
    	at org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26)
    	at $RequestHandler_120c51bd2a7.service($RequestHandler_120c51bd2a7.java)
    	at org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:621)
    	at $RequestHandler_120c51bd2a7.service($RequestHandler_120c51bd2a7.java)
    	at org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:611)
    	at $RequestHandler_120c51bd2a7.service($RequestHandler_120c51bd2a7.java)
    	at org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:85)
    	at $RequestHandler_120c51bd2a7.service($RequestHandler_120c51bd2a7.java)
    	at org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:93)
    	at org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:84)
    	at org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:83)
    	at org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:106)
    	at $RequestHandler_120c51bd2a7.service($RequestHandler_120c51bd2a7.java)
    	at $RequestHandler_120c51bd29e.service($RequestHandler_120c51bd29e.java)
    	at org.apache.tapestry5.services.TapestryModule$16.service(TapestryModule.java:1007)
    	at org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62)
    	at $HttpServletRequestFilter_120c51bd29d.service($HttpServletRequestFilter_120c51bd29d.java)
    	at $HttpServletRequestHandler_120c51bd29f.service($HttpServletRequestHandler_120c51bd29f.java)
    	at $HttpServletRequestHandler_120c51bd29c.service($HttpServletRequestHandler_120c51bd29c.java)
    	at org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:179)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
    	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:875)
    	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
    	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
    	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
    	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
    	at java.lang.Thread.run(Thread.java:595)
    Caused by: java.lang.ClassNotFoundException: caught an exception while obtaining a class file for com.test.sample.skillbrowser.web.pages.users.UsersIndex
    	at javassist.Loader.findClass(Loader.java:359)
    	at org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl$PackageAwareLoader.findClass(ComponentInstantiatorSourceImpl.java:92)
    	at javassist.Loader.loadClass(Loader.java:311)
    	at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    	at org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl.findClass(ComponentInstantiatorSourceImpl.java:292)
    	... 60 more
    Caused by: org.apache.tapestry5.internal.services.TransformationException: Error obtaining injected value for field com.test.sample.skillbrowser.web.pages.users.UsersIndex.userManager: No service implements the interface com.test.sample.skillbrowser.services.UserManager.
    	at org.apache.tapestry5.internal.services.ComponentClassTransformerImpl.transformComponentClass(ComponentClassTransformerImpl.java:176)
    	at $ComponentClassTransformer_120c51bd297.transformComponentClass($ComponentClassTransformer_120c51bd297.java)
    	at org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl.onLoad(ComponentInstantiatorSourceImpl.java:201)
    	at javassist.Loader.findClass(Loader.java:340)
    	... 64 more
    Caused by: java.lang.RuntimeException: Error obtaining injected value for field com.test.sample.skillbrowser.web.pages.users.UsersIndex.userManager: No service implements the interface com.test.sample.skillbrowser.services.UserManager.
    	at org.apache.tapestry5.internal.transform.InjectWorker.transform(InjectWorker.java:68)
    	at $ComponentClassTransformWorker_120c51bd2d5.transform($ComponentClassTransformWorker_120c51bd2d5.java)
    	at $ComponentClassTransformWorker_120c51bd2cb.transform($ComponentClassTransformWorker_120c51bd2cb.java)
    	at org.apache.tapestry5.internal.services.ComponentClassTransformerImpl.transformComponentClass(ComponentClassTransformerImpl.java:170)
    	... 67 more
    Caused by: java.lang.RuntimeException: No service implements the interface com.test.sample.skillbrowser.services.UserManager.
    	at org.apache.tapestry5.ioc.internal.RegistryImpl.getService(RegistryImpl.java:551)
    	at org.apache.tapestry5.ioc.internal.ObjectLocatorImpl.getService(ObjectLocatorImpl.java:44)
    	at org.apache.tapestry5.internal.services.ServiceInjectionProvider.provideInjection(ServiceInjectionProvider.java:40)
    	at $InjectionProvider_120c51bd2d7.provideInjection($InjectionProvider_120c51bd2d7.java)
    	at $InjectionProvider_120c51bd2cf.provideInjection($InjectionProvider_120c51bd2cf.java)
    	at org.apache.tapestry5.internal.transform.InjectWorker.transform(InjectWorker.java:57)
    	... 70 more

  4. #4
    Membre expérimenté Avatar de aymen83
    Inscrit en
    Décembre 2007
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 271
    Par défaut
    bonjour, d'après le log il y a une classe qui n'est pas correctement configurée.
    il ne la trouve pas.

  5. #5
    Membre averti
    Inscrit en
    Octobre 2004
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 45
    Par défaut
    Ok merci.

    Mais l'erreur de configuration vient-elle des annotations ou du code java ou des fichiers de configuraton? J'ai revérifié plusieurs fois et vraiment je ne comprends pas!

Discussions similaires

  1. Réponses: 3
    Dernier message: 25/12/2011, 13h33
  2. [Reflection] Obtenir toutes les classes implémentant une interface
    Par Pill_S dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 20/04/2005, 16h48
  3. [classe anonyme] implementant une interface
    Par stanilas dans le forum Langage
    Réponses: 4
    Dernier message: 30/11/2004, 00h18
  4. [Reflection] Classes implémentant une interface
    Par thibaut dans le forum API standards et tierces
    Réponses: 17
    Dernier message: 29/07/2004, 14h57
  5. Implementation et Interface
    Par Bleys dans le forum Débuter
    Réponses: 5
    Dernier message: 21/06/2004, 14h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo