java.util.ServiceConfigurationError:com.fasterxml.jackson.da



===========

当我运行API自动化测试时,我会得到以下错误。但是当cucumber java版本是7.2.3如何解决此问题?请注意下面的一些其他细节。使用JDK 11 JRE 1.8

===========

<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-java</artifactId>
<version>7.3.4</version>
</dependency>

注意下面的Trace和pom.xml

===========

[Trace][1]

java.util.ServiceConfigurationError:com.fasterxml.jackson.databind.Module:找不到提供程序com.fasterxml.jackson.datatype.jdk8.Jdk8Module位于java.base/java.util.ServiceLoader.fail(ServiceLoader.java:593)位于java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.nextProviderClass(ServiceLoader.java:1219)位于java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNextService(ServiceLoader.java:1228)位于java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNext(ServiceLoader.java:1273)位于java.base/java.util.ServiceLoader$2.hasNext(ServiceLoader.java:1309)位于java.base/java.util.ServiceLoader$3.hasNext(ServiceLoader.java:1393)网址:com.fasterxml.jackson.databind.ObjectMapper.findModules(ObjectMapper.java:1105)网址:com.fasterxml.jackson.databind.ObjectMapper.findModules(ObjectMapper.java:1089)网址:com.fasterxml.jackson.databind.ObjectMapper.findAndRegisterModules(ObjectMapper.java:1139)位于io.ressured.path.json.mapper.factory.DefaultJackson2ObjectMapperFactory.create(DefaultJackson2OObjectMapperFactory.java:29)位于io.ressured.path.json.mapper.factory.DefaultJackson2ObjectMapperFactory.create(DefaultJackson2OObjectMapperFactory.java:27)位于io.ressured.common.mapper.factory.ObjectMapperFactory$create.call(未知源)位于org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:46)网址:org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)网址:org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:148)位于io.ressured.internal.mapping.Jackson2Mapper.createJackson2ObjectMapper(Jackson2Mapper.groovy:44)在io.ressured.internal.mapping.Jackson2Mapper.this$2$createJackson2ObjectMapper(Jackson2Mapper.groovy)位于java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)位于java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)位于java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)位于java.base/java.lang.reflect.Method.ioke(Method.java:568)位于org.codehaus.groovy.runtime.callsite.PlainObjectMetaMethodSite.doInvoke(PlainObjectMetaMethodSite.java:43)网址:org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:198)网址:org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:62)位于org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:50)网址:org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:171)网址:org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:194)位于io.ressured.internal.mapping.Jackson2Mapper.serialize(Jackson2Mapper.groovy:50)位于io.ressured.internal.mapping.Jackson2Mapper.serialize(Jackson2Mapper.groovy)位于io.ressured.mapper.ObjectMapper$serialize.call(未知源)位于org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:46)网址:org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)网址:org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:139)位于io.ressured.internal.mapping.ObjectMapping.serializeWithJackson2(ObjectMapping.groovy:217)位于java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)位于java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)位于java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)位于java.base/java.lang.reflect.Method.ioke(Method.java:568)网址:org.codehaus.groovy.reflection.CachedMethod.ioke(CachedMethod.java:343)位于org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite$StaticMetaMethod SiteNoUnwrapNoCoerce.invoke(StaticMetaMethodSite.java:153)位于org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite.callStatic(StaticMetaMethodSite.java:102)位于org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallStatic(CallSiteArray.java:54)网址:org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java:217)网址:org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java:240)位于io.ressured.internal.mapping.ObjectMapping.serialize(ObjectMapping.groovy:154)位于io.ressured.internal.mapping.ObjectMapping$serialize.call(未知源)位于org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:46)网址:org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)在io.ressured.internal.RequestSpecificationImpl.body(RequestSpecificationImpl.groovy:756)

**POM.xml**

我也有同样的问题"testImplementation"io.cuccumber:caucumber-java8:7.3.3";(gradle)。

我改成了";testImplementation"io.cuccumber:caucumber-java8:7.0.0";当我更改它并再次运行测试时,我得到了关于真正问题的正确错误消息;无法识别的字段"programId";(例如),然后我就可以解决这个问题(这是我班上缺少的字段)。

我在pom.xml文件中安装了Jackson JDK8存储库,它解决了这个问题:https://mvnrepository.com/artifact/com.fasterxml.jackson.datatype/jackson-datatype-jdk8

相关内容

最新更新