EnvironmentConfig

本文介绍了一个用于读取Java配置文件的实用工具类EnvironmentConfig。该工具类采用单例模式,通过缓存机制提高文件读取效率。文章展示了如何使用此类获取配置文件中的属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. package com.billows.util;   
  2.   
  3. import java.io.*;   
  4. import java.util.*;   
  5.   
  6. /**  
  7.  * java 读取配置(属性)文件    
  8.  * @author Billows.Van   
  9.  * billows.van@gmail.com  
  10.  */  
  11. public class EnvironmentConfig {   
  12.     static EnvironmentConfig ec;// 创建对象ec   
  13.     private static Hashtable<String, Properties> register = new Hashtable<String, Properties>();// 静态对象初始化[在其它对象之前]   
  14.   
  15.     private EnvironmentConfig() {   
  16.         super();   
  17.     }   
  18.   
  19.     /**  
  20.      * 取得EnvironmentConfig的一个实例  
  21.      */  
  22.     public static EnvironmentConfig getInstance() {   
  23.         if (ec == null)   
  24.             ec = new EnvironmentConfig();// 创建EnvironmentConfig对象   
  25.         return ec;// 返回EnvironmentConfig对象   
  26.     }   
  27.   
  28.     /**  
  29.      * 读取配置文件  
  30.      */  
  31.     public Properties getProperties(String fileName) {// 传递配置文件路径   
  32.         InputStream is = null;// 定义输入流is   
  33.         Properties p = null;   
  34.         try {   
  35.             p = (Properties) register.get(fileName);// 将fileName存于一个HashTable   
  36.             /**  
  37.              * 如果为空就尝试输入进文件  
  38.              */  
  39.             if (p == null) {   
  40.                 try {   
  41.                     is = new FileInputStream(fileName);// 创建输入流   
  42.                 } catch (Exception e) {   
  43.                     if (fileName.startsWith("/"))   
  44.                         // 用getResourceAsStream()方法用于定位并打开外部文件。   
  45.                         is = EnvironmentConfig.class.getResourceAsStream(fileName);   
  46.                     else  
  47.                         is = EnvironmentConfig.class.getResourceAsStream("/"+fileName);   
  48.                 }   
  49.                 p = new Properties();   
  50.                 p.load(is);// 加载输入流   
  51.                 register.put(fileName, p);// 将其存放于HashTable缓存   
  52.                 is.close();// 关闭输入流   
  53.             }   
  54.         } catch (Exception e) {   
  55.             e.printStackTrace(System.out);   
  56.         }   
  57.         return p;// 返回Properties对象   
  58.     }   
  59.   
  60.     /**  
  61.      * 此处插入方法描述。  
  62.      */  
  63.     public String getPropertyValue(String fileName, String strKey) {   
  64.         Properties p = getProperties(fileName);   
  65.         try {   
  66.             return (String) p.getProperty(strKey);   
  67.         } catch (Exception e) {   
  68.             e.printStackTrace(System.out);   
  69.         }   
  70.         return null;   
  71.     }   
  72. }  

 

 

 

  1. EnvironmentConfig ec=EnvironmentConfig.getInstance();   
  2. String driverClassName=ec.getPropertyValue("/config/jdbc.properties""jdbc.driverClassName");  

[LOG-PATH]: /opt/dolphinscheduler/logs/20250813/149117592763872/19/4067/8582.log, [HOST]: 192.168.161.8:1234 [INFO] 2025-08-13 18:45:50.593 +0800 - *********************************************************************************************** [INFO] 2025-08-13 18:45:50.594 +0800 - ********************************* Initialize task context *********************************** [INFO] 2025-08-13 18:45:50.594 +0800 - *********************************************************************************************** [INFO] 2025-08-13 18:45:50.594 +0800 - Begin to initialize task [INFO] 2025-08-13 18:45:50.594 +0800 - Set task startTime: 1755081950594 [INFO] 2025-08-13 18:45:50.594 +0800 - Set task appId: 4067_8582 [INFO] 2025-08-13 18:45:50.595 +0800 - End initialize task { "taskInstanceId" : 8582, "taskName" : "stg_product_info_label", "firstSubmitTime" : 1755081950589, "startTime" : 1755081950594, "taskType" : "DATAX", "workflowInstanceHost" : "192.168.161.8:5678", "host" : "192.168.161.8:1234", "logPath" : "/opt/dolphinscheduler/logs/20250813/149117592763872/19/4067/8582.log", "processId" : 0, "processDefineCode" : 149117592763872, "processDefineVersion" : 19, "processInstanceId" : 4067, "scheduleTime" : 0, "executorId" : 1, "cmdTypeIfComplement" : 0, "tenantCode" : "default", "processDefineId" : 0, "projectId" : 0, "projectCode" : 148534792059360, "taskParams" : "{\"localParams\":[],\"resourceList\":[],\"customConfig\":1,\"json\":\"{\\r\\n \\\"job\\\": {\\r\\n \\\"setting\\\": {\\r\\n \\\"speed\\\": {\\r\\n \\\"channel\\\": 3,\\r\\n \\\"byte\\\": 104857600\\r\\n },\\r\\n \\\"errorLimit\\\": {\\r\\n \\\"record\\\": 0,\\r\\n \\\"percentage\\\": 0.02\\r\\n }\\r\\n },\\r\\n\\r\\n \\\"content\\\": [\\r\\n {\\r\\n \\\"reader\\\": {\\r\\n \\\"name\\\": \\\"sqlserverreader\\\",\\r\\n \\\"parameter\\\": {\\r\\n \\\"username\\\": \\\"erp_app\\\",\\r\\n \\\"password\\\": \\\"znZsr1I3e!H)6PjFbN\\\",\\r\\n \\\"column\\\": [\\r\\n \\\"ID\\\",\\r\\n \\\"PlanWarehouse\\\",\\r\\n \\\"MarketingID\\\",\\r\\n \\\"Account\\\",\\r\\n \\\"LabelSKU\\\",\\r\\n \\\"SKU\\\",\\r\\n \\\"Status\\\",\\r\\n \\\"ASIN\\\",\\r\\n \\\"FNSKU\\\",\\r\\n \\\"IsCalStock\\\",\\r\\n \\\"CreateDate\\\",\\r\\n \\\"Qty\\\",\\r\\n \\\"WholesalingTime\\\",\\r\\n \\\"LastUpdateTime\\\",\\r\\n \\\"FulfillmentChannel\\\",\\r\\n \\\"ListingStatus\\\",\\r\\n \\\"SaleItemID\\\",\\r\\n \\\"Channel\\\",\\r\\n \\\"OldLabelSKU\\\",\\r\\n \\\"DeliveryType\\\",\\r\\n \\\"PackageType\\\",\\r\\n \\\"RemoteFulfillment\\\",\\r\\n \\\"DeliveryMode\\\",\\r\\n \\\"DeliveryModeUpdateUser\\\",\\r\\n \\\"DeliveryModeUpdateTime\\\",\\r\\n \\\"StatusUpdateTime\\\",\\r\\n \\\"IsInternal\\\"\\r\\n ],\\r\\n \\\"connection\\\": [\\r\\n {\\r\\n \\\"jdbcUrl\\\": \\\"jdbc:sqlserver://192.168.161.2:55001;databaseName=OceaniaERP\\\",\\r\\n \\\"table\\\": [\\\"OC_Product_Info_Label\\\"],\\r\\n \\\"where\\\": \\\"1 = 1\\\"\\r\\n }\\r\\n ],\\r\\n \\\"fetchSize\\\": 1024\\r\\n }\\r\\n },\\r\\n \\\"writer\\\": {\\r\\n \\\"name\\\": \\\"doriswriter\\\",\\r\\n \\\"parameter\\\": {\\r\\n \\\"username\\\": \\\"root\\\",\\r\\n \\\"password\\\": \\\"\\\",\\r\\n \\\"database\\\": \\\"bi_finance\\\",\\r\\n \\\"table\\\": \\\"stg_product_info_label\\\",\\r\\n \\\"column\\\": [\\r\\n \\\"ID\\\",\\r\\n \\\"PlanWarehouse\\\",\\r\\n \\\"MarketingID\\\",\\r\\n \\\"Account\\\",\\r\\n \\\"LabelSKU\\\",\\r\\n \\\"SKU\\\",\\r\\n \\\"Status\\\",\\r\\n \\\"ASIN\\\",\\r\\n \\\"FNSKU\\\",\\r\\n \\\"IsCalStock\\\",\\r\\n \\\"CreateDate\\\",\\r\\n \\\"Qty\\\",\\r\\n \\\"WholesalingTime\\\",\\r\\n \\\"LastUpdateTime\\\",\\r\\n \\\"FulfillmentChannel\\\",\\r\\n \\\"ListingStatus\\\",\\r\\n \\\"SaleItemID\\\",\\r\\n \\\"Channel\\\",\\r\\n \\\"OldLabelSKU\\\",\\r\\n \\\"DeliveryType\\\",\\r\\n \\\"PackageType\\\",\\r\\n \\\"RemoteFulfillment\\\",\\r\\n \\\"DeliveryMode\\\",\\r\\n \\\"DeliveryModeUpdateUser\\\",\\r\\n \\\"DeliveryModeUpdateTime\\\",\\r\\n \\\"StatusUpdateTime\\\",\\r\\n \\\"IsInternal\\\"\\r\\n ],\\r\\n \\\"preSql\\\": [\\r\\n \\\"TRUNCATE TABLE stg_product_info_label \\\"\\r\\n ],\\r\\n \\\"postSql\\\": [],\\r\\n \\\"jdbcUrl\\\": \\\"jdbc:mysql://192.168.161.6:9030/\\\",\\r\\n \\\"feLoadUrl\\\": [\\\"192.168.161.6:8030\\\"],\\r\\n \\\"maxBatchRows\\\": 500000,\\r\\n \\\"maxBatchByteSize\\\": 104857600,\\r\\n \\\"lineDelimiter\\\": \\\"\\\\\\\\x02\\\"\\r\\n }\\r\\n }\\r\\n }\\r\\n ]\\r\\n }\\r\\n}\",\"xms\":1,\"xmx\":1}", "environmentConfig" : "export DATAX_HOME=${DATAX_HOME:-/opt/soft/datax}\nexport PYTHON_HOME=/opt/python/py385\nexport PYTHON_LAUNCHER=/opt/python/py385/bin/python\nexport DATAX_LAUNCHER=/opt/soft/datax/bin/datax.py\nexport JAVA_HOME=/opt/java/openjdk/\nexport PATH=$PYTHON_HOME/bin/python:$DATAX_HOME/bin:$JAVA_HOME/bin:/usr/bin", "prepareParamsMap" : { "system.task.definition.name" : { "prop" : "system.task.definition.name", "direct" : "IN", "type" : "VARCHAR", "value" : "stg_product_info_label" }, "system.project.name" : { "prop" : "system.project.name", "direct" : "IN", "type" : "VARCHAR", "value" : null }, "system.project.code" : { "prop" : "system.project.code", "direct" : "IN", "type" : "VARCHAR", "value" : "148534792059360" }, "system.workflow.instance.id" : { "prop" : "system.workflow.instance.id", "direct" : "IN", "type" : "VARCHAR", "value" : "4067" }, "system.biz.curdate" : { "prop" : "system.biz.curdate", "direct" : "IN", "type" : "VARCHAR", "value" : "20250813" }, "system.biz.date" : { "prop" : "system.biz.date", "direct" : "IN", "type" : "VARCHAR", "value" : "20250812" }, "system.task.instance.id" : { "prop" : "system.task.instance.id", "direct" : "IN", "type" : "VARCHAR", "value" : "8582" }, "system.workflow.definition.name" : { "prop" : "system.workflow.definition.name", "direct" : "IN", "type" : "VARCHAR", "value" : "stg_product_info_label" }, "system.task.definition.code" : { "prop" : "system.task.definition.code", "direct" : "IN", "type" : "VARCHAR", "value" : "149117390890464" }, "system.workflow.definition.code" : { "prop" : "system.workflow.definition.code", "direct" : "IN", "type" : "VARCHAR", "value" : "149117592763872" }, "system.datetime" : { "prop" : "system.datetime", "direct" : "IN", "type" : "VARCHAR", "value" : "20250813184550" } }, "taskAppId" : "4067_8582", "taskTimeout" : 2147483647, "workerGroup" : "default", "delayTime" : 0, "currentExecutionStatus" : "SUBMITTED_SUCCESS", "resourceParametersHelper" : { "resourceMap" : { } }, "endTime" : 0, "varPool" : "[]", "dryRun" : 0, "paramsMap" : { }, "cpuQuota" : -1, "memoryMax" : -1, "testFlag" : 0, "logBufferEnable" : false, "dispatchFailTimes" : 0 } [INFO] 2025-08-13 18:45:50.595 +0800 - *********************************************************************************************** [INFO] 2025-08-13 18:45:50.595 +0800 - ********************************* Load task instance plugin ********************************* [INFO] 2025-08-13 18:45:50.595 +0800 - *********************************************************************************************** [INFO] 2025-08-13 18:45:50.597 +0800 - Send task status RUNNING_EXECUTION master: 192.168.161.8:1234 [INFO] 2025-08-13 18:45:50.597 +0800 - Current tenant is default tenant, will use bootstrap user: root to execute the task [INFO] 2025-08-13 18:45:50.597 +0800 - TenantCode: root check successfully [INFO] 2025-08-13 18:45:50.597 +0800 - WorkflowInstanceExecDir: /tmp/dolphinscheduler/exec/process/root/148534792059360/149117592763872_19/4067/8582 check successfully [INFO] 2025-08-13 18:45:50.597 +0800 - Create TaskChannel: org.apache.dolphinscheduler.plugin.task.datax.DataxTaskChannel successfully [INFO] 2025-08-13 18:45:50.597 +0800 - Download resources successfully: ResourceContext(resourceItemMap={}) [INFO] 2025-08-13 18:45:50.597 +0800 - Download upstream files: [] successfully [INFO] 2025-08-13 18:45:50.598 +0800 - Task plugin instance: DATAX create successfully [INFO] 2025-08-13 18:45:50.598 +0800 - Initialize datax task params { "localParams" : [ ], "varPool" : [ ], "customConfig" : 1, "json" : "{\r\n \"job\": {\r\n \"setting\": {\r\n \"speed\": {\r\n \"channel\": 3,\r\n \"byte\": 104857600\r\n },\r\n \"errorLimit\": {\r\n \"record\": 0,\r\n \"percentage\": 0.02\r\n }\r\n },\r\n\r\n \"content\": [\r\n {\r\n \"reader\": {\r\n \"name\": \"sqlserverreader\",\r\n \"parameter\": {\r\n \"username\": \"erp_app\",\r\n \"password\": \"znZsr1I3e!H)6PjFbN\",\r\n \"column\": [\r\n \"ID\",\r\n \"PlanWarehouse\",\r\n \"MarketingID\",\r\n \"Account\",\r\n \"LabelSKU\",\r\n \"SKU\",\r\n \"Status\",\r\n \"ASIN\",\r\n \"FNSKU\",\r\n \"IsCalStock\",\r\n \"CreateDate\",\r\n \"Qty\",\r\n \"WholesalingTime\",\r\n \"LastUpdateTime\",\r\n \"FulfillmentChannel\",\r\n \"ListingStatus\",\r\n \"SaleItemID\",\r\n \"Channel\",\r\n \"OldLabelSKU\",\r\n \"DeliveryType\",\r\n \"PackageType\",\r\n \"RemoteFulfillment\",\r\n \"DeliveryMode\",\r\n \"DeliveryModeUpdateUser\",\r\n \"DeliveryModeUpdateTime\",\r\n \"StatusUpdateTime\",\r\n \"IsInternal\"\r\n ],\r\n \"connection\": [\r\n {\r\n \"jdbcUrl\": \"jdbc:sqlserver://192.168.161.2:55001;databaseName=OceaniaERP\",\r\n \"table\": [\"OC_Product_Info_Label\"],\r\n \"where\": \"1 = 1\"\r\n }\r\n ],\r\n \"fetchSize\": 1024\r\n }\r\n },\r\n \"writer\": {\r\n \"name\": \"doriswriter\",\r\n \"parameter\": {\r\n \"username\": \"root\",\r\n \"password\": \"\",\r\n \"database\": \"bi_finance\",\r\n \"table\": \"stg_product_info_label\",\r\n \"column\": [\r\n \"ID\",\r\n \"PlanWarehouse\",\r\n \"MarketingID\",\r\n \"Account\",\r\n \"LabelSKU\",\r\n \"SKU\",\r\n \"Status\",\r\n \"ASIN\",\r\n \"FNSKU\",\r\n \"IsCalStock\",\r\n \"CreateDate\",\r\n \"Qty\",\r\n \"WholesalingTime\",\r\n \"LastUpdateTime\",\r\n \"FulfillmentChannel\",\r\n \"ListingStatus\",\r\n \"SaleItemID\",\r\n \"Channel\",\r\n \"OldLabelSKU\",\r\n \"DeliveryType\",\r\n \"PackageType\",\r\n \"RemoteFulfillment\",\r\n \"DeliveryMode\",\r\n \"DeliveryModeUpdateUser\",\r\n \"DeliveryModeUpdateTime\",\r\n \"StatusUpdateTime\",\r\n \"IsInternal\"\r\n ],\r\n \"preSql\": [\r\n \"TRUNCATE TABLE stg_product_info_label \"\r\n ],\r\n \"postSql\": [],\r\n \"jdbcUrl\": \"jdbc:mysql://192.168.161.6:9030/\",\r\n \"feLoadUrl\": [\"192.168.161.6:8030\"],\r\n \"maxBatchRows\": 500000,\r\n \"maxBatchByteSize\": 104857600,\r\n \"lineDelimiter\": \"\\\\x02\"\r\n }\r\n }\r\n }\r\n ]\r\n }\r\n}", "dsType" : null, "dataSource" : 0, "dtType" : null, "dataTarget" : 0, "sql" : null, "targetTable" : null, "preStatements" : null, "postStatements" : null, "jobSpeedByte" : 0, "jobSpeedRecord" : 0, "xms" : 1, "xmx" : 1, "resourceList" : [ ] } [INFO] 2025-08-13 18:45:50.598 +0800 - Success initialized task plugin instance successfully [INFO] 2025-08-13 18:45:50.598 +0800 - Set taskVarPool: [] successfully [INFO] 2025-08-13 18:45:50.598 +0800 - *********************************************************************************************** [INFO] 2025-08-13 18:45:50.598 +0800 - ********************************* Execute task instance ************************************* [INFO] 2025-08-13 18:45:50.598 +0800 - *********************************************************************************************** [INFO] 2025-08-13 18:45:50.599 +0800 - Final Shell file is: [INFO] 2025-08-13 18:45:50.599 +0800 - ****************************** Script Content ***************************************************************** [INFO] 2025-08-13 18:45:50.599 +0800 - #!/bin/bash BASEDIR=$(cd `dirname $0`; pwd) cd $BASEDIR export DATAX_HOME=${DATAX_HOME:-/opt/soft/datax} export PYTHON_HOME=/opt/python/py385 export PYTHON_LAUNCHER=/opt/python/py385/bin/python export DATAX_LAUNCHER=/opt/soft/datax/bin/datax.py export JAVA_HOME=/opt/java/openjdk/ export PATH=$PYTHON_HOME/bin/python:$DATAX_HOME/bin:$JAVA_HOME/bin:/usr/bin ${PYTHON_LAUNCHER} ${DATAX_LAUNCHER} --jvm="-Xms1G -Xmx1G" -p "-Dsystem.task.definition.name='stg_product_info_label' -Dsystem.project.name='null' -Dsystem.project.code='148534792059360' -Dsystem.workflow.instance.id='4067' -Dsystem.biz.curdate='20250813' -Dsystem.biz.date='20250812' -Dsystem.task.instance.id='8582' -Dsystem.workflow.definition.name='stg_product_info_label' -Dsystem.task.definition.code='149117390890464' -Dsystem.workflow.definition.code='149117592763872' -Dsystem.datetime='20250813184550'" /tmp/dolphinscheduler/exec/process/root/148534792059360/149117592763872_19/4067/8582/4067_8582_job.json [INFO] 2025-08-13 18:45:50.600 +0800 - ****************************** Script Content ***************************************************************** [INFO] 2025-08-13 18:45:50.600 +0800 - Executing shell command : bash /tmp/dolphinscheduler/exec/process/root/148534792059360/149117592763872_19/4067/8582/4067_8582.sh [INFO] 2025-08-13 18:45:50.602 +0800 - process start, process id is: 1728 [INFO] 2025-08-13 18:45:51.602 +0800 - -> DataX (DATAX-OPENSOURCE-3.0), From Alibaba ! Copyright (C) 2010-2017, Alibaba Group. All Rights Reserved. 2025-08-13 18:45:51.018 [main] INFO MessageSource - JVM TimeZone: GMT+08:00, Locale: zh_CN 2025-08-13 18:45:51.019 [main] INFO MessageSource - use Locale: zh_CN timeZone: sun.util.calendar.ZoneInfo[id="GMT+08:00",offset=28800000,dstSavings=0,useDaylight=false,transitions=0,lastRule=null] 2025-08-13 18:45:51.040 [main] INFO VMInfo - VMInfo# operatingSystem class => sun.management.OperatingSystemImpl 2025-08-13 18:45:51.044 [main] INFO Engine - the machine info => osInfo: Linux amd64 6.8.0-31-generic jvmInfo: Temurin 1.8 25.412-b08 cpu num: 8 totalPhysicalMemory: -0.00G freePhysicalMemory: -0.00G maxFileDescriptorCount: -1 currentOpenFileDescriptorCount: -1 GC Names [PS MarkSweep, PS Scavenge] MEMORY_NAME | allocation_size | init_size PS Eden Space | 256.00MB | 256.00MB Code Cache | 240.00MB | 2.44MB Compressed Class Space | 1,024.00MB | 0.00MB PS Survivor Space | 42.50MB | 42.50MB PS Old Gen | 683.00MB | 683.00MB Metaspace | -0.00MB | 0.00MB 2025-08-13 18:45:51.055 [main] INFO Engine - { "setting":{ "speed":{ "channel":3, "byte":104857600 }, "errorLimit":{ "record":0, "percentage":0.02 } }, "content":[ { "reader":{ "name":"sqlserverreader", "parameter":{ "username":"erp_app", "password":"******************", "column":[ "ID", "PlanWarehouse", "MarketingID", "Account", "LabelSKU", "SKU", "Status", "ASIN", "FNSKU", "IsCalStock", "CreateDate", "Qty", "WholesalingTime", "LastUpdateTime", "FulfillmentChannel", "ListingStatus", "SaleItemID", "Channel", "OldLabelSKU", "DeliveryType", "PackageType", "RemoteFulfillment", "DeliveryMode", "DeliveryModeUpdateUser", "DeliveryModeUpdateTime", "StatusUpdateTime", "IsInternal" ], "connection":[ { "jdbcUrl":"jdbc:sqlserver://192.168.161.2:55001;databaseName=OceaniaERP", "table":[ "OC_Product_Info_Label" ], "where":"1 = 1" } ], "fetchSize":1024 } }, "writer":{ "name":"doriswriter", "parameter":{ "username":"root", "password":"", "database":"bi_finance", "table":"stg_product_info_label", "column":[ "ID", "PlanWarehouse", "MarketingID", "Account", "LabelSKU", "SKU", "Status", "ASIN", "FNSKU", "IsCalStock", "CreateDate", "Qty", "WholesalingTime", "LastUpdateTime", "FulfillmentChannel", "ListingStatus", "SaleItemID", "Channel", "OldLabelSKU", "DeliveryType", "PackageType", "RemoteFulfillment", "DeliveryMode", "DeliveryModeUpdateUser", "DeliveryModeUpdateTime", "StatusUpdateTime", "IsInternal" ], "preSql":[ "TRUNCATE TABLE stg_product_info_label " ], "postSql":[ ], "jdbcUrl":"jdbc:mysql://192.168.161.6:9030/", "feLoadUrl":[ "192.168.161.6:8030" ], "maxBatchRows":500000, "maxBatchByteSize":104857600, "lineDelimiter":"\\x02" } } } ] } 2025-08-13 18:45:51.068 [main] INFO PerfTrace - PerfTrace traceId=job_-1, isEnable=false 2025-08-13 18:45:51.069 [main] INFO JobContainer - DataX jobContainer starts job. 2025-08-13 18:45:51.069 [main] INFO JobContainer - Set jobId = 0 2025-08-13 18:45:51.081 [job-0] ERROR JobContainer - Exception when job run java.lang.ClassCastException: java.lang.String cannot be cast to java.util.List at com.alibaba.datax.common.util.Configuration.getList(Configuration.java:435) ~[datax-common-0.0.1-SNAPSHOT.jar:na] at com.alibaba.datax.plugin.rdbms.reader.util.OriginalConfPretreatmentUtil.dealJdbcAndTable(OriginalConfPretreatmentUtil.java:85) ~[plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na] at com.alibaba.datax.plugin.rdbms.reader.util.OriginalConfPretreatmentUtil.simplifyConf(OriginalConfPretreatmentUtil.java:59) ~[plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na] at com.alibaba.datax.plugin.rdbms.reader.util.OriginalConfPretreatmentUtil.doPretreatment(OriginalConfPretreatmentUtil.java:33) ~[plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na] at com.alibaba.datax.plugin.rdbms.reader.CommonRdbmsReader$Job.init(CommonRdbmsReader.java:55) ~[plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na] at com.alibaba.datax.plugin.reader.sqlserverreader.SqlServerReader$Job.init(SqlServerReader.java:40) ~[sqlserverreader-0.0.1-SNAPSHOT.jar:na] at com.alibaba.datax.core.job.JobContainer.initJobReader(JobContainer.java:673) ~[datax-core-0.0.1-SNAPSHOT.jar:na] at com.alibaba.datax.core.job.JobContainer.init(JobContainer.java:303) ~[datax-core-0.0.1-SNAPSHOT.jar:na] at com.alibaba.datax.core.job.JobContainer.start(JobContainer.java:113) ~[datax-core-0.0.1-SNAPSHOT.jar:na] at com.alibaba.datax.core.Engine.start(Engine.java:86) [datax-core-0.0.1-SNAPSHOT.jar:na] at com.alibaba.datax.core.Engine.entry(Engine.java:168) [datax-core-0.0.1-SNAPSHOT.jar:na] at com.alibaba.datax.core.Engine.main(Engine.java:201) [datax-core-0.0.1-SNAPSHOT.jar:na] 2025-08-13 18:45:51.084 [job-0] INFO StandAloneJobContainerCommunicator - Total 0 records, 0 bytes | Speed 0B/s, 0 records/s | Error 0 records, 0 bytes | All Task WaitWriterTime 0.000s | All Task WaitReaderTime 0.000s | Percentage 0.00% 2025-08-13 18:45:51.085 [job-0] ERROR Engine - 经DataX智能分析,该任务最可能的错误原因是: com.alibaba.datax.common.exception.DataXException: Code:[Framework-02], Description:[DataX引擎运行过程出错,具体原因请参看DataX运行结束时的错误诊断信息 .]. - java.lang.ClassCastException: java.lang.String cannot be cast to java.util.List at com.alibaba.datax.common.util.Configuration.getList(Configuration.java:435) at com.alibaba.datax.plugin.rdbms.reader.util.OriginalConfPretreatmentUtil.dealJdbcAndTable(OriginalConfPretreatmentUtil.java:85) at com.alibaba.datax.plugin.rdbms.reader.util.OriginalConfPretreatmentUtil.simplifyConf(OriginalConfPretreatmentUtil.java:59) at com.alibaba.datax.plugin.rdbms.reader.util.OriginalConfPretreatmentUtil.doPretreatment(OriginalConfPretreatmentUtil.java:33) at com.alibaba.datax.plugin.rdbms.reader.CommonRdbmsReader$Job.init(CommonRdbmsReader.java:55) at com.alibaba.datax.plugin.reader.sqlserverreader.SqlServerReader$Job.init(SqlServerReader.java:40) at com.alibaba.datax.core.job.JobContainer.initJobReader(JobContainer.java:673) at com.alibaba.datax.core.job.JobContainer.init(JobContainer.java:303) at com.alibaba.datax.core.job.JobContainer.start(JobContainer.java:113) at com.alibaba.datax.core.Engine.start(Engine.java:86) at com.alibaba.datax.core.Engine.entry(Engine.java:168) at com.alibaba.datax.core.Engine.main(Engine.java:201) - java.lang.ClassCastException: java.lang.String cannot be cast to java.util.List at com.alibaba.datax.common.util.Configuration.getList(Configuration.java:435) at com.alibaba.datax.plugin.rdbms.reader.util.OriginalConfPretreatmentUtil.dealJdbcAndTable(OriginalConfPretreatmentUtil.java:85) at com.alibaba.datax.plugin.rdbms.reader.util.OriginalConfPretreatmentUtil.simplifyConf(OriginalConfPretreatmentUtil.java:59) at com.alibaba.datax.plugin.rdbms.reader.util.OriginalConfPretreatmentUtil.doPretreatment(OriginalConfPretreatmentUtil.java:33) at com.alibaba.datax.plugin.rdbms.reader.CommonRdbmsReader$Job.init(CommonRdbmsReader.java:55) at com.alibaba.datax.plugin.reader.sqlserverreader.SqlServerReader$Job.init(SqlServerReader.java:40) at com.alibaba.datax.core.job.JobContainer.initJobReader(JobContainer.java:673) at com.alibaba.datax.core.job.JobContainer.init(JobContainer.java:303) at com.alibaba.datax.core.job.JobContainer.start(JobContainer.java:113) at com.alibaba.datax.core.Engine.start(Engine.java:86) at com.alibaba.datax.core.Engine.entry(Engine.java:168) at com.alibaba.datax.core.Engine.main(Engine.java:201) at com.alibaba.datax.common.exception.DataXException.asDataXException(DataXException.java:48) at com.alibaba.datax.core.job.JobContainer.start(JobContainer.java:162) at com.alibaba.datax.core.Engine.start(Engine.java:86) at com.alibaba.datax.core.Engine.entry(Engine.java:168) at com.alibaba.datax.core.Engine.main(Engine.java:201) Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to java.util.List at com.alibaba.datax.common.util.Configuration.getList(Configuration.java:435) at com.alibaba.datax.plugin.rdbms.reader.util.OriginalConfPretreatmentUtil.dealJdbcAndTable(OriginalConfPretreatmentUtil.java:85) at com.alibaba.datax.plugin.rdbms.reader.util.OriginalConfPretreatmentUtil.simplifyConf(OriginalConfPretreatmentUtil.java:59) at com.alibaba.datax.plugin.rdbms.reader.util.OriginalConfPretreatmentUtil.doPretreatment(OriginalConfPretreatmentUtil.java:33) at com.alibaba.datax.plugin.rdbms.reader.CommonRdbmsReader$Job.init(CommonRdbmsReader.java:55) at com.alibaba.datax.plugin.reader.sqlserverreader.SqlServerReader$Job.init(SqlServerReader.java:40) at com.alibaba.datax.core.job.JobContainer.initJobReader(JobContainer.java:673) at com.alibaba.datax.core.job.JobContainer.init(JobContainer.java:303) at com.alibaba.datax.core.job.JobContainer.start(JobContainer.java:113) ... 3 more [INFO] 2025-08-13 18:45:51.604 +0800 - process has exited. execute path:/tmp/dolphinscheduler/exec/process/root/148534792059360/149117592763872_19/4067/8582, processId:1728 ,exitStatusCode:1 ,processWaitForStatus:true ,processExitValue:1 [INFO] 2025-08-13 18:45:51.604 +0800 - *********************************************************************************************** [INFO] 2025-08-13 18:45:51.604 +0800 - ********************************* Finalize task instance ************************************ [INFO] 2025-08-13 18:45:51.604 +0800 - *********************************************************************************************** [INFO] 2025-08-13 18:45:51.605 +0800 - Upload output files: [] successfully [INFO] 2025-08-13 18:45:51.606 +0800 - Send task execute status: FAILURE to master : 192.168.161.8:1234 [INFO] 2025-08-13 18:45:51.606 +0800 - Remove the current task execute context from worker cache [INFO] 2025-08-13 18:45:51.606 +0800 - The current execute mode isn't develop mode, will clear the task execute file: /tmp/dolphinscheduler/exec/process/root/148534792059360/149117592763872_19/4067/8582 [INFO] 2025-08-13 18:45:51.606 +0800 - Success clear the task execute file: /tmp/dolphinscheduler/exec/process/root/148534792059360/149117592763872_19/4067/8582 [INFO] 2025-08-13 18:45:51.606 +0800 - FINALIZE_SESSION
最新发布
08-14
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值