
<dependency><groupId>org.flowable</groupId><artifactId>flowable-spring-boot-starter-process</artifactId><version>${flowable.version}</version></dependency>


<dependency><groupId>org.flowable</groupId><artifactId>flowable-ui-modeler-logic</artifactId><version>${flowable.version}</version></dependency><dependency><groupId>org.flowable</groupId><artifactId>flowable-ui-common</artifactId><version>${flowable.version}</version></dependency></dependencies>
@Servicepublic class SyFlowServiceImpl implements SyFlowService {...@Autowiredprivate ModelRepository modelRepository;@Autowiredprivate ModelService modelService;... }
Field modelRepository in com.flow.test.flowabledemo.service.impl.SyFlowServiceImpl required a bean of type 'org.flowable.ui.modeler.repository.ModelRepository' that could not be found.

@Configuration(proxyBeanMethods = false)@EnableConfigurationProperties(FlowableModelerAppProperties.class)@ComponentScan(basePackages = {// "org.flowable.ui.modeler.conf", //不引入 conf"org.flowable.ui.modeler.repository","org.flowable.ui.modeler.service",// "org.flowable.ui.modeler.security",//授权方面的都不需要// "org.flowable.ui.common.conf", // flowable 开发环境内置的数据库连接// "org.flowable.ui.common.filter",// IDM 方面的过滤器// "org.flowable.ui.common.service","org.flowable.ui.common.repository",// "org.flowable.ui.common.security",//授权方面的都不需要// "org.flowable.ui.common.tenant"},excludeFilters = {// 移除 RemoteIdmService@ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, value = RemoteIdmService.class)})public class ApplicationConfiguration {@Beanpublic ServletRegistrationBean modelerApiServlet(ApplicationContext applicationContext) {AnnotationConfigWebApplicationContext dispatcherServletConfiguration = new AnnotationConfigWebApplicationContext();dispatcherServletConfiguration.setParent(applicationContext);dispatcherServletConfiguration.register(ApiDispatcherServletConfiguration.class);DispatcherServlet servlet = new DispatcherServlet(dispatcherServletConfiguration);ServletRegistrationBean registrationBean = new ServletRegistrationBean(servlet, "/api/*");registrationBean.setName("Flowable Modeler App API Servlet");registrationBean.setLoadOnStartup(1);registrationBean.setAsyncSupported(true);return registrationBean;}}@Configuration//@ComponentScan(value = { "org.flowable.ui.modeler.rest.app"// // 不加载 rest,因为 getAccount 接口需要我们自己实现// //,"org.flowable.ui.common.rest"//},excludeFilters = {// // 移除 EditorUsersResource 与 EditorGroupsResource,因为不使用 IDM 部分// @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, value = EditorUsersResource.class),// @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, value = EditorGroupsResource.class),// // 配置文件用自己的// @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, value = StencilSetResource.class),//})@EnableAsyncpublic class ApiDispatcherServletConfiguration extends WebMvcConfigurationSupport {@Autowiredprotected ObjectMapper objectMapper;@Beanpublic SessionLocaleResolver localeResolver() {return new SessionLocaleResolver();}/*** RequestMappingHandlerMapping和RequestMappingHandlerAdapter是为Spring MVC分发请求所必须的*RequestMappingHandlerMapping:主要是将Contoller的带RequestMapping方法,添加到处理方法映射器和路径方法解析器中*RequestMappingHandlerAdapter:主要是解决请求的,会话,请求头部处理,数据的绑定等,然后从容器中,获取handlerMethod,处理业务逻辑,获取数据,并渲染视图,返回。*注入RequestMappingHandlerMapping和RequestMappingHandlerAdapter Bean就相当于配置<context:annotation-config/>启用注解** @return*/@Overrideprotected RequestMappingHandlerMapping createRequestMappingHandlerMapping() {RequestMappingHandlerMapping requestMappingHandlerMapping = new RequestMappingHandlerMapping();requestMappingHandlerMapping.setUseSuffixPatternMatch(false);requestMappingHandlerMapping.setRemoveSemicolonContent(false);return requestMappingHandlerMapping;}@Overridepublic void configureMessageConverters(List<HttpMessageConverter<?>> converters) {addDefaultHttpMessageConverters(converters);for (HttpMessageConverter<?> converter : converters) {if (converter instanceof MappingJackson2HttpMessageConverter) {MappingJackson2HttpMessageConverter jackson2HttpMessageConverter = (MappingJackson2HttpMessageConverter) converter;jackson2HttpMessageConverter.setObjectMapper(objectMapper);break;}}}}


<!--flowable依赖--><dependency><groupId>org.flowable</groupId><artifactId>flowable-spring-boot-starter-process</artifactId><version>${flowable.version}</version><exclusions><exclusion><groupId>org.flowable</groupId><artifactId>flowable-spring-security</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.flowable</groupId><artifactId>flowable-ui-modeler-logic</artifactId><version>${flowable.version}</version><exclusions><exclusion><groupId>org.springframework.security</groupId><artifactId>spring-security-web</artifactId></exclusion><exclusion><groupId>org.springframework.security</groupId><artifactId>spring-security-core</artifactId></exclusion><!-- <exclusion>--><!-- <groupId>org.springframework.security</groupId>--><!-- <artifactId>spring-security-config</artifactId>--><!-- </exclusion>--><exclusion><groupId>org.springframework.security</groupId><artifactId>spring-security-crypto</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.flowable</groupId><artifactId>flowable-ui-common</artifactId><version>${flowable.version}</version><exclusions><exclusion><groupId>org.springframework.security</groupId><artifactId>spring-security-web</artifactId></exclusion><exclusion><groupId>org.springframework.security</groupId><artifactId>spring-security-core</artifactId></exclusion><!-- <exclusion>--><!-- <groupId>org.springframework.security</groupId>--><!-- <artifactId>spring-security-config</artifactId>--><!-- </exclusion>--><exclusion><groupId>org.springframework.security</groupId><artifactId>spring-security-crypto</artifactId></exclusion></exclusions></dependency>
Description:Field sqlSessionTemplate in org.flowable.ui.modeler.repository.ModelRepositoryImpl required a bean of type 'org.mybatis.spring.SqlSessionTemplate' that could not be found.The injection point has the following annotations: - @org.springframework.beans.factory.annotation.Autowired(required=true)Action:Consider defining a bean of type 'org.mybatis.spring.SqlSessionTemplate' in your configuration.
<dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.3.1</version></dependency>
Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for org.flowable.ui.modeler.domain.Model.insertModel
mybatis:mapper-locations: classpath:/META-INF/modeler-mybatis-mappings/*.xml
Cause: org.apache.ibatis.builder.BuilderException: Error resolving JdbcType. Cause: java.lang.IllegalArgumentException: No enum constant org.apache.ibatis.type.JdbcType.${blobType}
mybatis: configuration-properties: blobType: BLOB boolValue: TRUE
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'prefix' in 'class org.flowable.ui.modeler.domain.Model'
mybatis:configuration-properties:prefix:
org.springframework.jdbc.BadSqlGrammarException:### Error updating database. Cause: java.sql.SQLSyntaxErrorException: Table 'flowable-study.act_de_model' doesn't exist
@Configurationpublic class DatabaseConfiguration {private static final Logger LOGGER = LoggerFactory.getLogger(DatabaseConfiguration.class);protected static final String LIQUIBASE_CHANGELOG_PREFIX = "ACT_DE_";@Beanpublic Liquibase liquibase(DataSource dataSource) {LOGGER.info("Configuring Liquibase");Liquibase liquibase = null;try {DatabaseConnection connection = new JdbcConnection(dataSource.getConnection());Database database = DatabaseFactory.getInstance().findCorrectDatabaseImplementation(connection);database.setDatabaseChangeLogTableName(LIQUIBASE_CHANGELOG_PREFIX + database.getDatabaseChangeLogTableName());database.setDatabaseChangeLogLockTableName(LIQUIBASE_CHANGELOG_PREFIX + database.getDatabaseChangeLogLockTableName());liquibase = new Liquibase("META-INF/liquibase/flowable-modeler-app-db-changelog.xml", new ClassLoaderResourceAccessor(), database);liquibase.update("flowable");return liquibase;} catch (Exception e) {throw new InternalServerErrorException("Error creating liquibase database", e);} finally {closeDatabase(liquibase);}}private void closeDatabase(Liquibase liquibase) {if (liquibase != null) {Database database = liquibase.getDatabase();if (database != null) {try {database.close();} catch (DatabaseException e) {LOGGER.warn("Error closing database", e);}}}}}

ModelRepositoryImpl.java:@Autowiredprotected TenantProvider tenantProvider;@Overridepublic void save(Model model) {model.setTenantId(tenantProvider.getTenantId());if (model.getId() == null) {model.setId(idGenerator.generateId());sqlSessionTemplate.insert(NAMESPACE + "insertModel", model);} else {sqlSessionTemplate.update(NAMESPACE + "updateModel", model);}}

长按二维码关注我们

ITSK
博客|yajing8
我知道你在看哟

文章转载自ITSK,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。





