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   ### 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]
