gpt4 book ai didi

java - 从 Oracle DB 触发器发出 http 请求时出错 - java.sql.SQLException : ORA-29273: HTTP request failed ORA-12541: TNS:no listener

转载 作者:行者123 更新时间:2023-12-01 17:03:49 24 4
gpt4 key购买 nike

我使用下面的代码通过 Oracle DB 触发器进行 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> grantexecute 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 地址而不是 localhost ('http://localhost:8086/testMethod') 并得到相同的错误。

当我询问 DBA 团队时,他们说数据库监听器已启动并在端口 15251791 上运行。如何/在哪里使用数据库监听器端口来使此代码工作?

最佳答案

我也遇到了同样的问题它的工作方式就像一个魅力,但在重新启动数据库 19c 后,当我使用 Apex webservice 或 utl 时,我收到这些错误

  • ACL
  • TNS:没有监听器

但是经过大量搜索和尝试后定义了 ACL,我发现原因是“PROXY”数据库如何使用一些代理,您只需要在调用 API 之前运行它

utl_http.set_proxy(''); 

关于java - 从 Oracle DB 触发器发出 http 请求时出错 - java.sql.SQLException : ORA-29273: HTTP request failed ORA-12541: TNS:no listener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61477415/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com