当前位置:网站首页>Activit fragmented deadly pit

Activit fragmented deadly pit

2022-07-06 17:00:00 Motorcycle loving program ape

One 、 Configuration integration

1.avtivit7 rely on Springboot And Spring Different

2.Spring To configure activiti7 The configuration file

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/tx
        http://www.springframework.org/schema/tx/spring-tx.xsd
        http://www.springframework.org/schema/aop
        http://www.springframework.org/schema/aop/spring-aop.xsd">
    <!--  data source  -->
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/activiti"/>
        <property name="username" value="root"/>
        <property name="password" value="123"/>
        <property name="maxActive" value="3"/>
        <property name="maxIdle" value="1"/>
    </bean>
    <!--  Workflow engine configuration bean -->
    <bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
        <!--  data source  -->
        <property name="dataSource" ref="dataSource"/>
        <!--  Use spring Transaction manager  -->
        <property name="transactionManager" ref="transactionManager"/>
        <!--  Database policy  -->
        <property name="databaseSchemaUpdate" value="true"/>
    </bean>
<!--
databaseSchemaUpdate Value content of :
    flase:  The default value is .activiti When it starts , Compare versions saved in database tables , If there is no table or version mismatch , An exception will be thrown .( The production environment is often used )
    true: activiti All tables in the database will be updated . If the watch doesn't exist , Automatically create .( It is often used in development )
    create_drop:  stay activiti Create table at startup , Delete table on close ( You have to shut down the engine manually , To delete the table ).( Unit test common )
    drop-create:  stay activiti Delete old tables on startup , Then create a new table ( There's no need to manually shut down the engine ).
  -->
    <!--  Process engine  -->
    <bean id="processEngine" class="org.activiti.spring.ProcessEngineFactoryBean">
        <property name="processEngineConfiguration" ref="processEngineConfiguration"/>
    </bean>
    <!--  Resource service service -->
    <bean id="repositoryService" factory-bean="processEngine" factory-method="getRepositoryService"/>
    <!--  Process operation service -->
    <bean id="runtimeService" factory-bean="processEngine"  factory-method="getRuntimeService"/>
    <!--  task management service -->
    <bean id="taskService" factory-bean="processEngine" factory-method="getTaskService"/>
    <!--  History management service -->
    <bean id="historyService" factory-bean="processEngine" factory-method="getHistoryService"/>
    <!--  Transaction manager  -->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"/>
    </bean>
    <!--  notice  -->
    <tx:advice id="txAdvice" transaction-manager="transactionManager">
        <tx:attributes>
            <!--  Communication behavior  -->
            <tx:method name="save*" propagation="REQUIRED"/>
            <tx:method name="insert*" propagation="REQUIRED"/>
            <tx:method name="delete*" propagation="REQUIRED"/>
            <tx:method name="update*" propagation="REQUIRED"/>
            <tx:method name="find*" propagation="SUPPORTS" read-only="true"/>
            <tx:method name="get*" propagation="SUPPORTS" read-only="true"/>
        </tx:attributes>
    </tx:advice>
    <!--  section , Modify the tangent point configuration according to the specific project 
    <aop:config proxy-target-class="true">
        <aop:advisor advice-ref="txAdvice"
                     pointcut="execution(*com.itheima.service.impl..(..))"/>
    </aop:config>-->
</beans>

3.web.xml Scan to profile

 Insert picture description here

4. In the increase of database connection nullCatalogMeansCurrent=true that will do .

 Insert picture description here

Two 、 Database version

see pom.xml mysql edition
View local mysql Version modification configuration

mysql -uroot -p
Input password

3、 ... and 、 example bug

  1. org.activiti.engine.ActivitiObjectNotFoundException: no processes deployed with key ‘process‘
    solve :
    activiti The template of must be bpmn20.xml perhaps bpmn ending
    Start process instance key For deployment flowchart process Label under ID

  2. Visit the page :java.lang.ClassCastException: de.odysseus.el.ExpressionFactoryImpl cannot be cast to javax.el.ExpressionFactory
    Content error :
    DEBUG [org.springframework.web.servlet.DispatcherServlet] - Error rendering view [org.springframework.web.servlet.view.JstlView: name ‘adMatching’; URL [/WEB-INF/page/adMatching.jsp]] in DispatcherServlet with name ‘SpringMvc’
    org.apache.jasper.JasperException: Unable to compile class for JSP

activiti6 solve : With the project el expression jar Filter out the problem of package conflict jar It is good to pack

		<exclusions>
            <exclusion>
                <groupId>de.odysseus.juel</groupId>
                <artifactId>juel-api</artifactId>
            </exclusion>
        </exclusions>

 Insert picture description here
activiti7 solve : With the project el expression jar Filter out the problem of package conflict jar It is good to pack

		<exclusions>
            <exclusion>
                <groupId>de.odysseus.juel</groupId>
                <artifactId>juel-api</artifactId>
            </exclusion>
        </exclusions>
        
		<exclusions>
            <exclusion>
                <groupId>javax.el</groupId>
                <artifactId>el-api</artifactId>
            </exclusion>
        </exclusions>

 Insert picture description here

  1. Configure multiple data sources
原网站

版权声明
本文为[Motorcycle loving program ape]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/187/202207060928026954.html