hw20130102 opened a new issue, #8638:
URL: https://github.com/apache/seatunnel/issues/8638

   ### Search before asking
   
   - [x] I had searched in the 
[issues](https://github.com/apache/seatunnel/issues?q=is%3Aissue+label%3A%22bug%22)
 and found no similar issues.
   
   
   ### What happened
   
   MySQL can load drivers and synchronize data normally, but databases such as 
Oracle and Dameng cannot dynamically load driver jar packages. The specific 
error is as follows
   
   `2025-02-10 17:40:12.204 seatunnel dapserver01 WARN [qtp1163871363-22] 
[SeatunnelPermissionServiceImpl.funcPermissionCheck():38] - func permission 
check in seatunnel
   2025-02-10 17:40:13.697 seatunnel dapserver01 WARN [qtp1163871363-20] 
[SeatunnelPermissionServiceImpl.funcPermissionCheck():38] - func permission 
check in seatunnel
   2025-02-10 17:40:13.697 seatunnel dapserver01 INFO [qtp1163871363-20] 
[JobInstanceServiceImpl.createExecuteResource():130] - receive 
createExecuteResource request, userId:2, jobDefineId:16607937105984
   2025-02-10 17:40:13.701 seatunnel dapserver01 WARN [qtp1163871363-20] 
[SeatunnelPermissionServiceImpl.funcPermissionCheck():38] - func permission 
check in seatunnel
   2025-02-10 17:40:13.703 seatunnel dapserver01 WARN [qtp1163871363-20] 
[SeatunnelPermissionServiceImpl.funcPermissionCheck():38] - func permission 
check in seatunnel
   2025-02-10 17:40:13.704 seatunnel dapserver01 WARN [qtp1163871363-20] 
[SeatunnelPermissionServiceImpl.funcPermissionCheck():38] - func permission 
check in seatunnel
   2025-02-10 17:40:13.707 seatunnel dapserver01 WARN [qtp1163871363-20] 
[SeatunnelPermissionServiceImpl.funcPermissionCheck():38] - func permission 
check in seatunnel
   2025-02-10 17:40:13.715 seatunnel dapserver01 INFO [qtp1163871363-20] 
[JobExecutorServiceImpl.writeJobConfigIntoConfFile():108] - File created and 
content written successfully.
   2025-02-10 17:40:13.720 seatunnel dapserver01 INFO [qtp1163871363-20] 
[ClientLoggingService$DefaultLogger.log():104] - hz.client_22 [seatunnel] [5.1] 
Running with 2 response threads, dynamic=true
   2025-02-10 17:40:13.721 seatunnel dapserver01 INFO [qtp1163871363-20] 
[ClientLoggingService$DefaultLogger.log():104] - hz.client_22 [seatunnel] [5.1] 
HazelcastClient 5.1 (20220228 - 21f20e7) is STARTING
   2025-02-10 17:40:13.724 seatunnel dapserver01 INFO [qtp1163871363-20] 
[ClientLoggingService$DefaultLogger.log():104] - hz.client_22 [seatunnel] [5.1] 
HazelcastClient 5.1 (20220228 - 21f20e7) is STARTED
   2025-02-10 17:40:13.726 seatunnel dapserver01 INFO [qtp1163871363-20] 
[ClientLoggingService$DefaultLogger.log():104] - hz.client_22 [seatunnel] [5.1] 
Trying to connect to cluster: seatunnel
   2025-02-10 17:40:13.726 seatunnel dapserver01 INFO [qtp1163871363-20] 
[ClientLoggingService$DefaultLogger.log():104] - hz.client_22 [seatunnel] [5.1] 
Trying to connect to [localhost]:5801
   2025-02-10 17:40:13.730 seatunnel dapserver01 INFO [qtp1163871363-20] 
[ClientLoggingService$DefaultLogger.log():104] - hz.client_22 [seatunnel] [5.1] 
HazelcastClient 5.1 (20220228 - 21f20e7) is CLIENT_CONNECTED
   2025-02-10 17:40:13.730 seatunnel dapserver01 INFO [qtp1163871363-20] 
[ClientLoggingService$DefaultLogger.log():104] - hz.client_22 [seatunnel] [5.1] 
Authenticated with server 
[localhost]:5801:2066d753-d036-4b6f-b403-c2d6635e81d4, server version: 5.1, 
local address: /127.0.0.1:55235
   2025-02-10 17:40:13.730 seatunnel dapserver01 INFO [qtp1163871363-20] 
[ClientLoggingService$DefaultLogger.log():104] - hz.client_22 [seatunnel] [5.1] 
Diagnostics disabled. To enable add -Dhazelcast.diagnostics.enabled=true to the 
JVM arguments.
   2025-02-10 17:40:13.735 seatunnel dapserver01 INFO [hz.client_22.event-109] 
[ClientLoggingService$DefaultLogger.log():104] - hz.client_22 [seatunnel] [5.1] 
   
   Members [1] {
        Member [localhost]:5801 - 2066d753-d036-4b6f-b403-c2d6635e81d4
   }
   
   2025-02-10 17:40:13.741 seatunnel dapserver01 INFO [qtp1163871363-20] 
[AbstractLogger.info():69] - Client statistics is enabled with period 5 seconds.
   2025-02-10 17:40:13.752 seatunnel dapserver01 INFO [qtp1163871363-20] 
[ConfigBuilder.of():88] - Loading config file from path: 
/appdata/data/seatunnel-web/profile/16607937105984.conf
   2025-02-10 17:40:13.754 seatunnel dapserver01 INFO [qtp1163871363-20] 
[ConfigBuilder.of():95] - Parsed config file: 
   {
       "transform" : [],
       "sink" : [
           {
               "batch_size" : "1000",
               "max_retries" : "0",
               "create_index" : "true",
               "schema_save_mode" : "CREATE_SCHEMA_WHEN_NOT_EXIST",
               "source_table_name" : "Table16607990676032",
               "max_commit_attempts" : "3",
               "auto_commit" : "true",
               "plugin_name" : "Jdbc",
               "url" : "jdbc:mysql://10.0.0.151:3306/test",
               "is_exactly_once" : "false",
               "database" : "test",
               "password" : "******",
               "transaction_timeout_sec" : "-1",
               "driver" : "com.mysql.cj.jdbc.Driver",
               "data_save_mode" : "APPEND_DATA",
               "support_upsert_by_query_primary_key_exist" : "false",
               "connection_check_timeout_sec" : "30",
               "multi_table_sink_replica" : "1",
               "generate_sink_sql" : true,
               "user" : "root",
               "table" : "cust_info"
           }
       ],
       "source" : [
           {
               "split.inverse-sampling.rate" : "1000",
               "parallelism" : "1",
               "query" : "SELECT \"id\", \"name\", \"age\" FROM 
\"TEST\".\"CUST_INFO\"",
               "result_table_name" : "Table16607990676032",
               "split.even-distribution.factor.lower-bound" : "0.05",
               "plugin_name" : "Jdbc",
               "use_select_count" : "false",
               "url" : "jdbc:oracle:thin:@10.0.0.152:1521/TEST",
               "skip_analyze" : "false",
               "password" : "******",
               "driver" : "oracle.jdbc.driver.OracleDriver",
               "split.even-distribution.factor.upper-bound" : "100.0",
               "split.sample-sharding.threshold" : "1000",
               "connection_check_timeout_sec" : "30",
               "fetch_size" : "0",
               "user" : "test",
               "split.size" : "8096"
           }
       ],
       "env" : {
           "job.mode" : "BATCH",
           "job.name" : "SeaTunnel_Job",
           "savemode.execute.location" : "CLUSTER"
       }
   }
   
   2025-02-10 17:40:13.754 seatunnel dapserver01 INFO [qtp1163871363-20] 
[MultipleTableJobConfigParser.fillJobConfigAndCommonJars():317] - add common 
jar in plugins 
:[file:/appdata/data/dm-executor/plugins/jdbc/lib/DmJdbcDriver18-8.1.2.141.jar, 
file:/appdata/data/dm-executor/plugins/jdbc/lib/postgis-jdbc-2023.1.0.jar, 
file:/appdata/data/dm-executor/plugins/gaussdbjdbc.jar, 
file:/appdata/data/dm-executor/plugins/ojdbc8-19.3.0.0.jar, 
file:/appdata/data/dm-executor/plugins/jdbc/lib/postgresql-42.7.3.jar, 
file:/appdata/data/dm-executor/plugins/orai18n-19.3.0.0.jar, 
file:/appdata/data/dm-executor/plugins/jdbc/lib/db2jcc-db2jcc4.jar, 
file:/appdata/data/dm-executor/plugins/DmJdbcDriver18-8.1.2.141.jar, 
file:/appdata/data/dm-executor/plugins/postgresql-42.7.3.jar, 
file:/appdata/data/dm-executor/plugins/jdbc/lib/gaussdbjdbc.jar, 
file:/appdata/data/dm-executor/plugins/db2jcc-db2jcc4.jar, 
file:/appdata/data/dm-executor/plugins/mysql-connector-java-8.0.27.jar]
   2025-02-10 17:40:13.755 seatunnel dapserver01 INFO [qtp1163871363-20] 
[AbstractPluginDiscovery.<init>():116] - Load SeaTunnelSink Plugin from 
/appdata/data/dm-executor/connectors
   2025-02-10 17:40:13.755 seatunnel dapserver01 INFO [qtp1163871363-20] 
[AbstractPluginDiscovery.findPluginJarPath():446] - Discovery plugin jar for: 
PluginIdentifier{engineType='seatunnel', pluginType='source', 
pluginName='Jdbc'} at: 
file:/appdata/data/dm-executor/connectors/connector-jdbc-2.3.8.jar
   2025-02-10 17:40:13.756 seatunnel dapserver01 INFO [qtp1163871363-20] 
[AbstractPluginDiscovery.findPluginJarPath():446] - Discovery plugin jar for: 
PluginIdentifier{engineType='seatunnel', pluginType='sink', pluginName='Jdbc'} 
at: file:/appdata/data/dm-executor/connectors/connector-jdbc-2.3.8.jar
   2025-02-10 17:40:13.756 seatunnel dapserver01 WARN [qtp1163871363-20] 
[ConfigUtil.convertValue():64] - Option 'source_table_name' is a List, and it 
is recommended to configure it as ["string1","string2"]; we will only use ',' 
to split the String into a list.
   2025-02-10 17:40:13.756 seatunnel dapserver01 INFO [qtp1163871363-20] 
[MultipleTableJobConfigParser.parse():205] - start generating all sources.
   2025-02-10 17:40:13.801 seatunnel dapserver01 INFO [qtp1163871363-20] 
[JdbcCatalogUtils.getTables():77] - Loading catalog tables for catalog : class 
org.apache.seatunnel.connectors.seatunnel.jdbc.catalog.oracle.OracleCatalog
   2025-02-10 17:40:13.806 seatunnel dapserver01 INFO [qtp1163871363-20] 
[AbstractJdbcCatalog.close():145] - Catalog Oracle closing
   2025-02-10 17:40:13.806 seatunnel dapserver01 ERROR [qtp1163871363-20] 
[JobExecutorServiceImpl.executeJobBySeaTunnel():128] - Job execution submission 
failed.
   org.apache.seatunnel.api.table.factory.FactoryException: ErrorCode:[API-06], 
ErrorDescription:[Factory initialize failed] - Unable to create a source for 
identifier 'Jdbc'.
        at 
org.apache.seatunnel.api.table.factory.FactoryUtil.createAndPrepareSource(FactoryUtil.java:101)
        at 
org.apache.seatunnel.engine.core.parse.MultipleTableJobConfigParser.parseSource(MultipleTableJobConfigParser.java:375)
        at 
org.apache.seatunnel.engine.core.parse.MultipleTableJobConfigParser.parse(MultipleTableJobConfigParser.java:209)
        at 
org.apache.seatunnel.engine.client.job.ClientJobExecutionEnvironment.getLogicalDag(ClientJobExecutionEnvironment.java:114)
        at 
org.apache.seatunnel.engine.client.job.ClientJobExecutionEnvironment.execute(ClientJobExecutionEnvironment.java:182)
        at 
org.apache.seatunnel.app.service.impl.JobExecutorServiceImpl.executeJobBySeaTunnel(JobExecutorServiceImpl.java:126)
        at 
org.apache.seatunnel.app.service.impl.JobExecutorServiceImpl.jobExecute(JobExecutorServiceImpl.java:79)
        at 
org.apache.seatunnel.app.controller.JobExecutorController.jobExecutor(JobExecutorController.java:64)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at 
org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
        at 
org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)
        at 
org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
        at 
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
        at 
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
        at 
org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
        at 
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067)
        at 
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)
        at 
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
        at 
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:517)
        at 
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:584)
        at 
org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799)
        at 
org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1631)
        at 
org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
        at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
        at 
org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
        at 
org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
        at 
org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
        at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
        at 
org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
        at 
org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
        at 
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
        at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
        at 
org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
        at 
org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
        at 
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:548)
        at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
        at 
org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:600)
        at 
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
        at 
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
        at 
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624)
        at 
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
        at 
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1440)
        at 
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
        at 
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501)
        at 
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594)
        at 
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
        at 
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1355)
        at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
        at 
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
        at org.eclipse.jetty.server.Server.handle(Server.java:516)
        at 
org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:487)
        at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:732)
        at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:479)
        at 
org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277)
        at 
org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
        at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
        at 
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338)
        at 
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315)
        at 
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173)
        at 
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)
        at 
org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409)
        at 
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)
        at 
org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)
        at java.lang.Thread.run(Thread.java:748)
   Caused by: 
org.apache.seatunnel.api.table.catalog.exception.CatalogException: 
ErrorCode:[API-03], ErrorDescription:[Catalog initialize failed] - Failed 
connecting to jdbc:oracle:thin:@10.0.0.152:1521/TEST via JDBC.
        at 
org.apache.seatunnel.connectors.seatunnel.jdbc.catalog.AbstractJdbcCatalog.getConnection(AbstractJdbcCatalog.java:124)
        at 
org.apache.seatunnel.connectors.seatunnel.jdbc.catalog.AbstractJdbcCatalog.open(AbstractJdbcCatalog.java:130)
        at 
org.apache.seatunnel.connectors.seatunnel.jdbc.utils.JdbcCatalogUtils.getTables(JdbcCatalogUtils.java:79)
        at 
org.apache.seatunnel.connectors.seatunnel.jdbc.source.JdbcSource.<init>(JdbcSource.java:57)
        at 
org.apache.seatunnel.connectors.seatunnel.jdbc.source.JdbcSourceFactory.lambda$createSource$0(JdbcSourceFactory.java:80)
        at 
org.apache.seatunnel.api.table.factory.FactoryUtil.createAndPrepareSource(FactoryUtil.java:113)
        at 
org.apache.seatunnel.api.table.factory.FactoryUtil.createAndPrepareSource(FactoryUtil.java:74)
        ... 69 common frames omitted
   Caused by: java.sql.SQLException: No suitable driver found for 
jdbc:oracle:thin:@10.0.0.152:1521/TEST
        at java.sql.DriverManager.getConnection(DriverManager.java:689)
        at java.sql.DriverManager.getConnection(DriverManager.java:247)
        at 
org.apache.seatunnel.connectors.seatunnel.jdbc.catalog.AbstractJdbcCatalog.getConnection(AbstractJdbcCatalog.java:120)
        ... 75 common frames omitted
   `
   
   ### SeaTunnel Version
   
   seatunnel-web-1.0.2(apache-seatunnel-2.3.8)
   
   
   ### SeaTunnel Config
   
   ```conf
   env {
   "job.mode"=BATCH
   "job.name"="SeaTunnel_Job"
   "savemode.execute.location"=CLUSTER
   }
   source {
   Jdbc {
       "connection_check_timeout_sec"="30"
       "fetch_size"="0"
       "use_select_count"="false"
       "skip_analyze"="false"
       "split.size"="8096"
       "split.even-distribution.factor.upper-bound"="100.0"
       "split.even-distribution.factor.lower-bound"="0.05"
       "split.sample-sharding.threshold"="1000"
       "split.inverse-sampling.rate"="1000"
       parallelism="1"
       "result_table_name"=Table16607990676032
       query="SELECT \"id\", \"name\", \"age\" FROM \"TEST\".\"CUST_INFO\""
       password=password
       user=test
       driver="oracle.jdbc.driver.OracleDriver"
       url="jdbc:oracle:thin:@10.0.0.152:1521/TEST"
   }
   }
   transform {
   }
   sink {
   Jdbc {
       "schema_save_mode"="CREATE_SCHEMA_WHEN_NOT_EXIST"
       "data_save_mode"="APPEND_DATA"
       "create_index"="true"
       "connection_check_timeout_sec"="30"
       "batch_size"="1000"
       "is_exactly_once"="false"
       "max_commit_attempts"="3"
       "transaction_timeout_sec"="-1"
       "max_retries"="0"
       "auto_commit"="true"
       "support_upsert_by_query_primary_key_exist"="false"
       "multi_table_sink_replica"="1"
       "source_table_name"=Table16607990676032
       "generate_sink_sql"=true
       database=test
       table="cust_info"
       password=password
       url="jdbc:mysql://10.0.0.151:3306/test"
       driver="com.mysql.cj.jdbc.Driver"
       user=root
   }
   }
   ```
   
   ### Running Command
   
   ```shell
   private void executeJobBySeaTunnel(String filePath, Long jobInstanceId) {
           Common.setDeployMode(DeployMode.CLIENT);
           JobConfig jobConfig = new JobConfig();
           jobConfig.setName(jobInstanceId + "_job");
           SeaTunnelClient seaTunnelClient;
           ClientJobProxy clientJobProxy;
           try {
               seaTunnelClient = createSeaTunnelClient();
               SeaTunnelConfig seaTunnelConfig = new 
YamlSeaTunnelConfigBuilder().build();
               ClientJobExecutionEnvironment jobExecutionEnv =
                       seaTunnelClient.createExecutionContext(filePath, 
jobConfig, seaTunnelConfig);
               clientJobProxy = jobExecutionEnv.execute();
           } catch (Throwable e) {
               log.error("Job execution submission failed.", e);
               JobInstance jobInstance = 
jobInstanceDao.getJobInstance(jobInstanceId);
               jobInstance.setJobStatus(JobStatus.FAILED);
               jobInstance.setEndTime(new Date());
               String jobInstanceErrorMessage = 
JobUtils.getJobInstanceErrorMessage(e.getMessage());
               jobInstance.setErrorMessage(jobInstanceErrorMessage);
               jobInstanceDao.update(jobInstance);
               throw new RuntimeException(e.getMessage(), e);
           }
           JobInstance jobInstance = 
jobInstanceDao.getJobInstance(jobInstanceId);
           jobInstance.setJobEngineId(Long.toString(clientJobProxy.getJobId()));
           jobInstanceDao.update(jobInstance);
           // Use Spring thread pool to handle asynchronous user retrieval
           CompletableFuture.runAsync(
                   () -> {
                       waitJobFinish(
                               clientJobProxy,
                               jobInstanceId,
                               Long.toString(clientJobProxy.getJobId()),
                               seaTunnelClient);
                   },
                   taskExecutor);
       }
   ```
   
   ### Error Exception
   
   ```log
   2025-02-10 17:40:13.806 seatunnel dapserver01 ERROR [qtp1163871363-20] 
[JobExecutorServiceImpl.executeJobBySeaTunnel():128] - Job execution submission 
failed.
   org.apache.seatunnel.api.table.factory.FactoryException: ErrorCode:[API-06], 
ErrorDescription:[Factory initialize failed] - Unable to create a source for 
identifier 'Jdbc'.
        at 
org.apache.seatunnel.api.table.factory.FactoryUtil.createAndPrepareSource(FactoryUtil.java:101)
        at 
org.apache.seatunnel.engine.core.parse.MultipleTableJobConfigParser.parseSource(MultipleTableJobConfigParser.java:375)
        at 
org.apache.seatunnel.engine.core.parse.MultipleTableJobConfigParser.parse(MultipleTableJobConfigParser.java:209)
        at 
org.apache.seatunnel.engine.client.job.ClientJobExecutionEnvironment.getLogicalDag(ClientJobExecutionEnvironment.java:114)
        at 
org.apache.seatunnel.engine.client.job.ClientJobExecutionEnvironment.execute(ClientJobExecutionEnvironment.java:182)
        at 
org.apache.seatunnel.app.service.impl.JobExecutorServiceImpl.executeJobBySeaTunnel(JobExecutorServiceImpl.java:126)
        at 
org.apache.seatunnel.app.service.impl.JobExecutorServiceImpl.jobExecute(JobExecutorServiceImpl.java:79)
        at 
org.apache.seatunnel.app.controller.JobExecutorController.jobExecutor(JobExecutorController.java:64)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at 
org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
        at 
org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)
        at 
org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
        at 
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
        at 
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
        at 
org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
        at 
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067)
        at 
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)
        at 
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
        at 
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:517)
        at 
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:584)
        at 
org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799)
        at 
org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1631)
        at 
org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
        at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
        at 
org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
        at 
org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
        at 
org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
        at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
        at 
org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
        at 
org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
        at 
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
        at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
        at 
org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
        at 
org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
        at 
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:548)
        at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
        at 
org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:600)
        at 
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
        at 
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
        at 
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624)
        at 
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
        at 
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1440)
        at 
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
        at 
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501)
        at 
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594)
        at 
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
        at 
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1355)
        at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
        at 
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
        at org.eclipse.jetty.server.Server.handle(Server.java:516)
        at 
org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:487)
        at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:732)
        at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:479)
        at 
org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277)
        at 
org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
        at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
        at 
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338)
        at 
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315)
        at 
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173)
        at 
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)
        at 
org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409)
        at 
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)
        at 
org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)
        at java.lang.Thread.run(Thread.java:748)
   Caused by: 
org.apache.seatunnel.api.table.catalog.exception.CatalogException: 
ErrorCode:[API-03], ErrorDescription:[Catalog initialize failed] - Failed 
connecting to jdbc:oracle:thin:@10.0.0.152:1521/TEST via JDBC.
        at 
org.apache.seatunnel.connectors.seatunnel.jdbc.catalog.AbstractJdbcCatalog.getConnection(AbstractJdbcCatalog.java:124)
        at 
org.apache.seatunnel.connectors.seatunnel.jdbc.catalog.AbstractJdbcCatalog.open(AbstractJdbcCatalog.java:130)
        at 
org.apache.seatunnel.connectors.seatunnel.jdbc.utils.JdbcCatalogUtils.getTables(JdbcCatalogUtils.java:79)
        at 
org.apache.seatunnel.connectors.seatunnel.jdbc.source.JdbcSource.<init>(JdbcSource.java:57)
        at 
org.apache.seatunnel.connectors.seatunnel.jdbc.source.JdbcSourceFactory.lambda$createSource$0(JdbcSourceFactory.java:80)
        at 
org.apache.seatunnel.api.table.factory.FactoryUtil.createAndPrepareSource(FactoryUtil.java:113)
        at 
org.apache.seatunnel.api.table.factory.FactoryUtil.createAndPrepareSource(FactoryUtil.java:74)
        ... 69 common frames omitted
   Caused by: java.sql.SQLException: No suitable driver found for 
jdbc:oracle:thin:@10.0.0.152:1521/TEST
        at java.sql.DriverManager.getConnection(DriverManager.java:689)
        at java.sql.DriverManager.getConnection(DriverManager.java:247)
        at 
org.apache.seatunnel.connectors.seatunnel.jdbc.catalog.AbstractJdbcCatalog.getConnection(AbstractJdbcCatalog.java:120)
        ... 75 common frames omitted
   ```
   
   ### Zeta or Flink or Spark Version
   
   _No response_
   
   ### Java or Scala Version
   
   java version "1.8.0_202"
   
   ### Screenshots
   
   
![Image](https://github.com/user-attachments/assets/bb40fab6-106f-493f-a13a-2ce5b1a25fb2)
   
   
![Image](https://github.com/user-attachments/assets/9124474f-eca1-4706-b233-f7740f3e4482)
   
   ### Are you willing to submit PR?
   
   - [ ] Yes I am willing to submit a PR!
   
   ### Code of Conduct
   
   - [x] I agree to follow this project's [Code of 
Conduct](https://www.apache.org/foundation/policies/conduct)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to