寻找 Java 高手解决 activiti 相关问题

2023-05-30 11:17:03 +08:00
 zsvc

java 启动后流程后报错调用方式如下

 public static void initialize() {
        if (nameServerControllerThread != null && nameServerControllerThread.isAlive()) {
            log.info("插件已经启动");
        } else {
            log.info("插件启动线程启动");
            nameServerControllerThread = new Thread(new Runnable() {
                @Override
                public void run() {
                    // 注意这里会一直卡住,同步等待结束 所以要用一个线程装
                    try {
                        log.info("NameServerController 线程启动");

 
                        // 创建数据源并设置连接信息
                        SimpleDriverDataSource dataSource = new SimpleDriverDataSource();
                        dataSource.setDriverClass(com.mysql.jdbc.Driver.class);
                        dataSource.setUrl("jdbc:mysql://localhost:3306/xxx?characterEncoding=UTF-8");
                        dataSource.setUsername("root");
                        dataSource.setPassword("root");

                        // 创建流程引擎配置对象
                        ProcessEngineConfiguration cfg = ProcessEngineConfiguration
                                .createStandaloneProcessEngineConfiguration();
                        // 设置自动更新数据库表结构
                        cfg.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
                        
                        // 配置数据源信息
                        cfg.setDataSource(dataSource);

                     
                        // 初始化流程引擎
                        processEngine = cfg.buildProcessEngine();
                        // 获取 MyBatis 的 Configuration 对象
 
                        // String resource =
                        // "/Users/xxx/Workspace/xxx/xxx-plugin-flow/src/main/resources/activiti.cfg.xml";
                        // InputStream inputStream = new FileInputStream(resource);
                        //
                        // ProcessEngineConfiguration processEngineConfiguration =
                        // ProcessEngineConfiguration.createProcessEngineConfigurationFromInputStream(inputStream);
                        // //2:创建 ProcessEngine 对象
                        // processEngine = processEngineConfiguration.buildProcessEngine();

                        // while (stopStatus) {
                        //     try {
                        //         Thread.sleep(5000); // 暂停 5 秒钟
                        //         log.info("NameServerController 线程停止 5 秒");
                        //     } catch (InterruptedException e) {
                        //         // 当前线程被中断时会抛出 InterruptedException 异常
                        //         e.printStackTrace();
                        //     }
                        // }
                        log.info("NameServerController 线程退出");

                    } catch (Exception e) {
                        log.error(e.getMessage());
                        e.printStackTrace();
                    }
                }
            });
            nameServerControllerThread.start();

            try {
                log.info("等待子线程退出");
                nameServerControllerThread.join(); // 等待线程执行完毕
                log.info("线程退出");
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }

错误

2023-05-30 10:53:11.775 | Thread-1093 | ERROR | a.p.f.u.FlowUtils$1:FlowUtils.java(84) | Error while building ibatis SqlSessionFactory: Error parsing SQL Mapper Configuration. Cause: org.apache.ibatis.builder.BuilderException: Error registering typeAlias for 'ByteArrayRefTypeHandler'. Cause: java.lang.ClassNotFoundException: Cannot find class: org.activiti.engine.impl.persistence.ByteArrayRefTypeHandler

对流程比较了解的大牛帮忙解决。

1268 次点击
所在节点    程序员
6 条回复
freeup
2023-05-30 11:47:01 +08:00
看看项目里有咩有 org.activiti.engine.impl.persistence.ByteArrayRefTypeHandler 这个类,如果没有是不是缺少依赖
zsvc
2023-05-30 11:50:56 +08:00
@freeup 有时间吗?可以付费帮忙排查一下!
coderstory
2023-05-30 12:31:45 +08:00
你的依赖是不是有点问题
这个类是 activiti-engine 里面的
直接 maven 打包看看有没有这个 jar
potatowish
2023-05-30 12:48:46 +08:00
你依赖的问题,我运行了一遍没问题
zsvc
2023-05-30 12:54:16 +08:00
@coderstory
@potatowish
检查 jar 包中有 activiti-engine 但是启动的时候不正确有没有手动加载 方式把依赖加载进来呀?
Hyson2023
2023-05-30 15:21:57 +08:00
估计也是 maven 依赖的问题,如果需要手动添加的话可以尝试先删除本地 repository 中的文件,然后手动用这个命令加一下
mvn install:install-file -Dfile=D:\mybatis-3.5.10.jar -DgroupId=org.mybatis -DartifactId=mybatis -Dversion=3.5.10 -Dpackaging=jar

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/944133

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX