问题描述
我们将SCDF(版本2.6.1)与定义Maven设置的环境变量一起使用:
MAVEN_LOCALREPOSITORY: custom-local-repo
MAVEN_REMOTEREPOSITORIES_MTREPO_URL: url
MAVEN_REMOTEREPOSITORIES_MTREPO_AUTH_USERNAME: user-name
MAVEN_REMOTEREPOSITORIES_MTREPO_AUTH_PASSWORD: password
从maven下载在注册简单任务的过程中正确进行,本地存储库已满,但是当我们创建任务时,会收到错误消息:
java.lang.IllegalArgumentException: Unable to deserialize manifest
at org.springframework.cloud.dataflow.server.repository.JdbcDataflowTaskExecutionMetadataDao.lambda$findManifestById$1(JdbcDataflowTaskExecutionMetadataDao.java:170)
at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:94)
at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:61)
at org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:679)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:617)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:669)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:694)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:748)
at org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate.queryForObject(NamedParameterJdbcTemplate.java:236)
at org.springframework.cloud.dataflow.server.repository.JdbcDataflowTaskExecutionMetadataDao.findManifestById(JdbcDataflowTaskExecutionMetadataDao.java:163)
at org.springframework.cloud.dataflow.server.service.impl.DefaultTaskExecutionService.findTaskManifestById(DefaultTaskExecutionService.java:638)
at org.springframework.cloud.dataflow.server.service.impl.DefaultTaskExecutionService$$FastClassBySpringcglib$$422cda43.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.cglibAopProxy$cglibMethodInvocation.invokeJoinpoint(cglibAopProxy.java:771)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.cglibAopProxy$cglibMethodInvocation.proceed(cglibAopProxy.java:749)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:367)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:118)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.cglibAopProxy$cglibMethodInvocation.proceed(cglibAopProxy.java:749)
at org.springframework.aop.framework.cglibAopProxy$DynamicAdvisedInterceptor.intercept(cglibAopProxy.java:691)
at org.springframework.cloud.dataflow.server.service.impl.DefaultTaskExecutionService$$EnhancerBySpringcglib$$44ae67c1.findTaskManifestById(<generated>)
at org.springframework.cloud.dataflow.server.controller.TaskDeFinitionController$Assembler.updateTaskExecutionResource(TaskDeFinitionController.java:278)
at org.springframework.cloud.dataflow.server.controller.TaskDeFinitionController$Assembler.instantiateModel(TaskDeFinitionController.java:302)
at org.springframework.cloud.dataflow.server.controller.TaskDeFinitionController$Assembler.instantiateModel(TaskDeFinitionController.java:263)
at org.springframework.hateoas.server.mvc.RepresentationModelAssemblerSupport.createModelWithId(RepresentationModelAssemblerSupport.java:97)
at org.springframework.hateoas.server.mvc.RepresentationModelAssemblerSupport.createModelWithId(RepresentationModelAssemblerSupport.java:89)
at org.springframework.cloud.dataflow.server.controller.TaskDeFinitionController$Assembler.toModel(TaskDeFinitionController.java:287)
at org.springframework.cloud.dataflow.server.controller.TaskDeFinitionController$Assembler.toModel(TaskDeFinitionController.java:263)
at org.springframework.data.web.PagedResourcesAssembler.createModel(PagedResourcesAssembler.java:211)
at org.springframework.data.web.PagedResourcesAssembler.toModel(PagedResourcesAssembler.java:123)
at org.springframework.cloud.dataflow.server.controller.TaskDeFinitionController.list(TaskDeFinitionController.java:196)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.web.method.support.invocableHandlerMethod.doInvoke(invocableHandlerMethod.java:190)
at org.springframework.web.method.support.invocableHandlerMethod.invokeForRequest(invocableHandlerMethod.java:138)
at org.springframework.web.servlet.mvc.method.annotation.ServletinvocableHandlerMethod.invokeAndHandle(ServletinvocableHandlerMethod.java:105)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:879)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:793)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.dispatcherServlet.dodispatch(dispatcherServlet.java:1040)
at org.springframework.web.servlet.dispatcherServlet.doService(dispatcherServlet.java:943)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.ForwardedHeaderFilter.doFilterInternal(ForwardedHeaderFilter.java:158)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.boot.actuate.metrics.web.servlet.WebMvcmetricsFilter.doFilterInternal(WebMvcmetricsFilter.java:109)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:747)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590)
at org.apache.tomcat.util.net.socketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
Caused by: com.fasterxml.jackson.databind.JsonMappingException: Unable to create directory for local repository: /.m2/repository (through reference chain: org.springframework.cloud.dataflow.core.TaskManifest["taskDeploymentRequest"]->org.springframework.cloud.deployer.spi.core.AppDeploymentRequest["resource"])
at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:397)
at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:356)
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.wrapAndThrow(BeanDeserializerBase.java:1732)
at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeWithErrorWrapping(BeanDeserializer.java:530)
at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeUsingPropertyBased(BeanDeserializer.java:417)
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializefromObjectUsingNonDefault(BeanDeserializerBase.java:1305)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializefromObject(BeanDeserializer.java:326)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:159)
at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:288)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:151)
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4218)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3214)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3182)
at org.springframework.cloud.dataflow.server.repository.JdbcDataflowTaskExecutionMetadataDao.lambda$findManifestById$1(JdbcDataflowTaskExecutionMetadataDao.java:167)
... 90 common frames omitted
Caused by: java.lang.IllegalArgumentException: Unable to create directory for local repository: /.m2/repository
at org.springframework.util.Assert.isTrue(Assert.java:118)
at org.springframework.cloud.deployer.resource.maven.MavenArtifactResolver.<init>(MavenArtifactResolver.java:114)
at org.springframework.cloud.deployer.resource.maven.MavenResource.<init>(MavenResource.java:122)
at org.springframework.cloud.deployer.resource.maven.MavenResource.parse(MavenResource.java:268)
at org.springframework.cloud.dataflow.registry.support.AppResourceCommon.getResource(AppResourceCommon.java:167)
at org.springframework.cloud.dataflow.server.service.impl.ResourceDeserializer.deserialize(ResourceDeserializer.java:51)
at org.springframework.cloud.dataflow.server.service.impl.ResourceDeserializer.deserialize(ResourceDeserializer.java:36)
at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:530)
at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeWithErrorWrapping(BeanDeserializer.java:528)
... 101 common frames omitted
也许问题出在这里
public JdbcDataflowTaskExecutionMetadataDao(DataSource dataSource,datafieldMaxValueIncrementer incrementer) {
this.incrementer = incrementer;
this.jdbcTemplate = new NamedParameterJdbcTemplate(dataSource);
this.objectMapper = new ObjectMapper();
SimpleModule module = new SimpleModule();
module.addDeserializer(Resource.class,new ResourceDeserializer(new AppResourceCommon(new MavenProperties(),new DefaultResourceLoader())));
this.objectMapper.registerModule(module);
this.objectMapper.addMixIn(Resource.class,ResourceMixin.class);
this.objectMapper.addMixIn(AppDeFinition.class,AppDeFinitionMixin.class);
this.objectMapper.addMixIn(AppDeploymentRequest.class,AppDeploymentRequestMixin.class);
this.objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS,false);
this.dataSource = dataSource;
}
正是在这里:
module.addDeserializer(Resource.class,new DefaultResourceLoader())));
AppResourceCommon获取一个具有默认本地存储库值的MavenProperties对象-$ {user.home} /。M2 / repository /
也许还有其他东西吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)