从 Oracle DB 触发器发出 http 请求时出错 - java.sql.SQLException: ORA-29273: HTTP 请求失败 ORA-12541: TNS:no 侦听器
Error While making http request from Oracle DB Trigger - java.sql.SQLException: ORA-29273: HTTP request failed ORA-12541: TNS:no listener
我正在使用以下代码通过 Oracle 数据库触发器进行 http 调用
create or replace TRIGGER TEST_TABLE_TRIGGER
AFTER INSERT OR UPDATE OF VALUE ON TEST_TABLE
for each row
DECLARE
req utl_http.req;
res utl_http.resp;
buffer varchar2(4000);
url varchar2(4000) := 'http://localhost:8086/testMethod';
BEGIN
req := utl_http.begin_request(url, 'GET',' HTTP/1.1');
utl_http.set_header(req, 'content-type', 'application/json');
res := utl_http.get_response(req);
-- process the response from the HTTP call
begin
loop
utl_http.read_line(res, buffer);
dbms_output.put_line(buffer);
end loop;
utl_http.end_response(res);
exception
when utl_http.end_of_body
then
utl_http.end_response(res);
end;
END;
DBA 团队已授予数据库用户 http 权限(SQL> grant execute on UTL_HTTP to userName;)。但是我的应用程序日志中出现以下错误 (Springboot)
java.sql.SQLException: ORA-29273: HTTP request failed
ORA-12541: TNS:no listener
ORA-06512: at "SYS.UTL_HTTP", line 368
ORA-06512: at "SYS.UTL_HTTP", line 1118
ORA-06512: at "userName.TEST_TABLE_TRIGGER", line 9
ORA-04088: error during execution of trigger 'userName.TEST_TABLE_TRIGGER '
我在 linux 服务器上尝试了 运行 应用程序并使用了有效的 IP 地址而不是本地主机 ('http://localhost:8086/testMethod'
) 并得到了同样的错误。
当我询问 DBA 团队时,他们说数据库侦听器已启动并且 运行 在端口 1525 和 1791 上。
How/where 使用数据库侦听器端口使此代码工作?
当我在 STS(Spring 工具站点)中 运行 编码并在数据库触发器中 http://localhost:8086/testMethod URL 时,它在本地不起作用。但是,在我将代码部署到 Linux 服务器并使用 linux 服务器的 IP 地址 (http://{serverIP}:8086/testMethod) 更新 localhost 之后,它成功了!我的错 !我一开始用错了URL。当我在 STS 中编写 运行 代码时,如果您知道如何在本地工作,请告诉我。
我正在使用以下代码通过 Oracle 数据库触发器进行 http 调用
create or replace TRIGGER TEST_TABLE_TRIGGER
AFTER INSERT OR UPDATE OF VALUE ON TEST_TABLE
for each row
DECLARE
req utl_http.req;
res utl_http.resp;
buffer varchar2(4000);
url varchar2(4000) := 'http://localhost:8086/testMethod';
BEGIN
req := utl_http.begin_request(url, 'GET',' HTTP/1.1');
utl_http.set_header(req, 'content-type', 'application/json');
res := utl_http.get_response(req);
-- process the response from the HTTP call
begin
loop
utl_http.read_line(res, buffer);
dbms_output.put_line(buffer);
end loop;
utl_http.end_response(res);
exception
when utl_http.end_of_body
then
utl_http.end_response(res);
end;
END;
DBA 团队已授予数据库用户 http 权限(SQL> grant execute on UTL_HTTP to userName;)。但是我的应用程序日志中出现以下错误 (Springboot)
java.sql.SQLException: ORA-29273: HTTP request failed
ORA-12541: TNS:no listener
ORA-06512: at "SYS.UTL_HTTP", line 368
ORA-06512: at "SYS.UTL_HTTP", line 1118
ORA-06512: at "userName.TEST_TABLE_TRIGGER", line 9
ORA-04088: error during execution of trigger 'userName.TEST_TABLE_TRIGGER '
我在 linux 服务器上尝试了 运行 应用程序并使用了有效的 IP 地址而不是本地主机 ('http://localhost:8086/testMethod'
) 并得到了同样的错误。
当我询问 DBA 团队时,他们说数据库侦听器已启动并且 运行 在端口 1525 和 1791 上。 How/where 使用数据库侦听器端口使此代码工作?
当我在 STS(Spring 工具站点)中 运行 编码并在数据库触发器中 http://localhost:8086/testMethod URL 时,它在本地不起作用。但是,在我将代码部署到 Linux 服务器并使用 linux 服务器的 IP 地址 (http://{serverIP}:8086/testMethod) 更新 localhost 之后,它成功了!我的错 !我一开始用错了URL。当我在 STS 中编写 运行 代码时,如果您知道如何在本地工作,请告诉我。