V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
zsvc
V2EX  ›  程序员

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

  •  
  •   zsvc · 2023-05-30 11:17:03 +08:00 · 1259 次点击
    这是一个创建于 561 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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
    

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

    freeup
        1
    freeup  
       2023-05-30 11:47:01 +08:00
    看看项目里有咩有 org.activiti.engine.impl.persistence.ByteArrayRefTypeHandler 这个类,如果没有是不是缺少依赖
    zsvc
        2
    zsvc  
    OP
       2023-05-30 11:50:56 +08:00
    @freeup 有时间吗?可以付费帮忙排查一下!
    coderstory
        3
    coderstory  
       2023-05-30 12:31:45 +08:00
    你的依赖是不是有点问题
    这个类是 activiti-engine 里面的
    直接 maven 打包看看有没有这个 jar
    potatowish
        4
    potatowish  
       2023-05-30 12:48:46 +08:00 via iPhone
    你依赖的问题,我运行了一遍没问题
    zsvc
        5
    zsvc  
    OP
       2023-05-30 12:54:16 +08:00
    @coderstory
    @potatowish
    检查 jar 包中有 activiti-engine 但是启动的时候不正确有没有手动加载 方式把依赖加载进来呀?
    Hyson2023
        6
    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
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5560 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 02:39 · PVG 10:39 · LAX 18:39 · JFK 21:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.