Caused?by:?org.springframework.beans.BeanInstantiationException:?Failed?to?instantiate?[org.flowable.ui.common.service.idm.RemoteIdmService]:?Factory?method?‘remoteIdmService‘?threw?exception;?nested?exception?is?java.lang.IllegalArgumentException:?`flowable.common.app.idm-url`?must?be?set at?org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185) at?org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653) ...?25?common?frames?omitted Caused?by:?java.lang.IllegalArgumentException:?`flowable.common.app.idm-url`?must?be?set at?org.springframework.util.Assert.hasText(Assert.java:289) at?org.flowable.ui.common.properties.FlowableCommonAppProperties.determineIdmAppUrl(FlowableCommonAppProperties.java:150) at?org.flowable.ui.common.service.idm.RemoteIdmServiceImpl.<init>(RemoteIdmServiceImpl.java:60) at?org.flowable.ui.common.security.FlowableUiSecurityAutoConfiguration$RemoteIdmConfiguration.remoteIdmService(FlowableUiSecurityAutoConfiguration.java:120) 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:483) at?org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) ...?26?common?frames?omitted
报错提示:`flowable.common.app.idm-url` must be set
????@Autowired ????protected?ObjectMapper?objectMapper; ????protected?String?url; ????protected?String?adminUser; ????protected?String?adminPassword; ????public?RemoteIdmServiceImpl(FlowableCommonAppProperties?properties)?{ ????????url?=?properties.determineIdmAppUrl(); ????????adminUser?=?properties.getIdmAdmin().getUser(); ????????Assert.hasText(adminUser,?"Admin?user?must?not?be?empty"); ????????adminPassword?=?properties.getIdmAdmin().getPassword(); ????????Assert.hasText(adminPassword,?"Admin?user?password?should?not?be?empty"); ????}
这个是由于flowable调用自己的用户权限导致的,如果把flowable集成自己的框架里面,就不需要用它自带的用户体现和权限了
出现这个问题,需要重写调用这个权限的最开始的那个类:FlowableUiSecurityAutoConfiguration
在自己项目,相同包名路径下,建个相同的类
package?org.flowable.ui.common.security; import?org.flowable.spring.boot.FlowableSecurityAutoConfiguration; import?org.flowable.spring.boot.idm.IdmEngineServicesAutoConfiguration; import?org.springframework.boot.autoconfigure.AutoConfigureAfter; import?org.springframework.boot.autoconfigure.AutoConfigureBefore; import?org.springframework.boot.autoconfigure.security.oauth2.client.servlet.OAuth2ClientAutoConfiguration; import?org.springframework.context.annotation.Configuration; /** ?*?说明:重构FlowableUiSecurity自动配置 ?*?From:www.fhadmin.org ?*/ @Configuration(proxyBeanMethods?=?false) @AutoConfigureAfter({ ????????IdmEngineServicesAutoConfiguration.class, }) @AutoConfigureBefore({ ????????FlowableSecurityAutoConfiguration.class, ????????OAuth2ClientAutoConfiguration.class, }) public?class?FlowableUiSecurityAutoConfiguration?{}
?