Details
-
Bug
-
Resolution: Fixed
-
Major
-
13.10.1
-
None
-
Unknown
-
n/a
-
n/a
-
Description
I installed the Extension Repository Application in a subwiki; however when trying to access the repository under /xwiki/rest/repository/ a 404 is returned.
The log contains an exception like:
2021-12-28 01:25:27.190:INFO:oejshC.xwiki:qtp2101842856-12 - http://localhost:8080/xwiki/rest/repository/search?start=0&number=100&q=: RestletServlet: [Restlet] Attaching application : org.xwiki.rest.internal.XWikiRestletJaxRsApplication@64df55c9 to URI: /xwiki/rest Dec 28, 2021 1:25:27 AM org.restlet.ext.jaxrs.internal.util.ExceptionHandler instantiateExecption WARNING: Could not create new instance of root resource class org.xwiki.component.manager.ComponentLookupException: Failed to lookup component [org.xwiki.repository.internal.resources.SearchRESTResource] identified by type [interface org.xwiki. rest.XWikiRestComponent] and hint [org.xwiki.repository.internal.resources.SearchRESTResource] at org.xwiki.component.embed.EmbeddableComponentManager.getInstance(EmbeddableComponentManager.java:204) at org.xwiki.component.internal.multi.DelegateComponentManager.getInstance(DelegateComponentManager.java:83) at org.xwiki.component.internal.multi.DelegateComponentManager.getInstance(DelegateComponentManager.java:83) at org.xwiki.component.internal.multi.DelegateComponentManager.getInstance(DelegateComponentManager.java:83) at org.xwiki.component.internal.multi.DelegateComponentManager.getInstance(DelegateComponentManager.java:83) at org.xwiki.component.internal.multi.DelegateComponentManager.getInstance(DelegateComponentManager.java:83) at org.xwiki.rest.internal.ComponentsObjectFactory.getInstance(ComponentsObjectFactory.java:67) at org.restlet.ext.jaxrs.internal.wrappers.PerRequestRootResourceClass.getInstance(PerRequestRootResourceClass.java:97) [...] Caused by: org.xwiki.component.manager.ComponentLookupException: Failed to lookup component [org.xwiki.repository.internal.RepositoryManager] identified by type [class org.xwiki.repository.internal.RepositoryManager] and hint [default] at org.xwiki.component.embed.EmbeddableComponentManager.getInstance(EmbeddableComponentManager.java:204) at org.xwiki.component.embed.EmbeddableComponentManager.getDependencyInstance(EmbeddableComponentManager.java:406) at org.xwiki.component.embed.EmbeddableComponentManager.createInstance(EmbeddableComponentManager.java:355) at org.xwiki.component.embed.EmbeddableComponentManager.getComponentInstance(EmbeddableComponentManager.java:451) at org.xwiki.component.embed.EmbeddableComponentManager.getInstance(EmbeddableComponentManager.java:201) ... 96 more Caused by: org.xwiki.component.phase.InitializationException: Failed to initialize cache at org.xwiki.repository.internal.RepositoryManager.initialize(RepositoryManager.java:227) at org.xwiki.component.embed.InitializableLifecycleHandler.handle(InitializableLifecycleHandler.java:39) at org.xwiki.component.embed.EmbeddableComponentManager.createInstance(EmbeddableComponentManager.java:365) at org.xwiki.component.embed.EmbeddableComponentManager.getComponentInstance(EmbeddableComponentManager.java:451) at org.xwiki.component.embed.EmbeddableComponentManager.getInstance(EmbeddableComponentManager.java:201) ... 100 more Caused by: org.xwiki.cache.CacheException: Cache with name [repository.extensionid.documentreference] already exist at org.xwiki.cache.infinispan.internal.InfinispanCacheFactory.newCache(InfinispanCacheFactory.java:152) at org.xwiki.cache.internal.DefaultCacheManager.createNewCache(DefaultCacheManager.java:112) at org.xwiki.cache.internal.DefaultCacheManager.createNewCache(DefaultCacheManager.java:85) at org.xwiki.repository.internal.RepositoryManager.initialize(RepositoryManager.java:225) ... 104 more
Out of curiosity I logged an exception in the initialize method of the RepositoryManager, and indeed it gets initialized twice (i.e. with two different instances), one for the subwiki and one for the REST-interface.
I guess only allowing to install the org.xwiki.platform:xwiki-platform-repository-server-api in the root namespace should fix the problem; at least if I edit the corresponding *.xed in my local installation it works without problems.