我正在使用AEM Mocks (与JUnit 5)。我创建的上下文如下:
private final AemContext aemContext = new AemContext(ResourceResolverType.JCR_OAK);
注意JCR_OAK的使用。如果我尝试使用JCR_MOCK,一切都很好。当尝试注入某些服务时,我会得到以下错误:
java.lang.RuntimeException: Unable to initialize JCR_OAK resource resolver factory: Unable to invoke method 'activate' for class org.apache.sling.resourceresolver.impl.ResourceResolverFactoryActivator
我已经尝试过这里描述的建议--反转sling-mock-oak和uber-jar依赖关系--但这是无法做到的。如果sling-mock-oak出现在uber-jar之前,则会引发其他错误。
下面是依赖项的部分列表:
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>${junitVersion}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.wcm</groupId>
<artifactId>io.wcm.testing.aem-mock.junit5</artifactId>
<version>3.1.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.wcm.maven</groupId>
<artifactId>io.wcm.maven.aem-dependencies</artifactId>
<version>6.4.8.0002</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.testing.logging-mock</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.testing.resourceresolver-mock</artifactId>
<version>1.1.24</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4jVersion}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>${slf4jVersion}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-core</artifactId>
<version>3.0.4</version>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>2.21.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-junit-jupiter</artifactId>
<version>2.23.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.testing.sling-mock-oak</artifactId>
<version>2.1.10-1.16.0</version>
<scope>test</scope>
</dependency>有人能告诉我为什么上面的错误吗?
谢谢!
发布于 2022-06-04 02:19:21
我能够通过切换到ResourceResolverType.JCR_MOCK来实现节点属性请求的工作,并纠正测试的正确性以匹配示例https://github.com/adobe/aem-guides-wknd中的pom.xml
https://stackoverflow.com/questions/64213999
复制相似问题