【问题标题】:Accessing web service in oracle 10g pl/sql procedures在 oracle 10g pl/sql 过程中访问 web 服务
【发布时间】:2012-09-20 13:57:32
【问题描述】:

我正在使用soap_api 方法来访问oracle 中的Web 服务。当我创建 add_numbers 函数并执行 add_numbers 函数时,函数不会执行。 在 select 语句中调用 web 服务时触发以下错误

select add_numbers(2,5) from dual

错误是

  • ORA-29273:HTTP 请求失败
  • ORA-06512:在“SYS.UTL_HTTP”,第 1029 行
  • ORA-12541:TNS:没有监听器
  • ORA-06512:在“dbtest.SOAP_API”第 144 行
  • ORA-06512:在“dbtest.ADD_NUMBERS”第 34 行 FROM!


我正在使用这个链接中的这个函数和 soap_api 方法。以
http://www.oracle-base.com/articles/9i/consuming-web-services-9i.php#Top 为例

调用网络服务的函数。

CREATE OR REPLACE FUNCTION add_numbers (p_int_1 IN  NUMBER,  p_int_2  IN  NUMBER)  RETURN NUMBER AS
  l_request   soap_api.t_request;
  l_response  soap_api.t_response;
  l_return    VARCHAR2(32767);  
  l_url          VARCHAR2(32767);
  l_namespace    VARCHAR2(32767);
  l_method       VARCHAR2(32767);
  l_soap_action  VARCHAR2(32767);
  l_result_name  VARCHAR2(32767);
BEGIN
  l_url         := 'http://192.168.0.75:9001/LicWebService.asmx';
  l_namespace   := 'xmlns="http://192.168.0.75:9001/"';
  l_method      := 'AddNum';
  l_soap_action := 'http://192.168.0.75:9001/AddNum';
  l_result_name := 'return';  
  l_request := soap_api.new_request(p_method => l_method,   p_namespace=> l_namespace);
  soap_api.add_parameter(p_request => l_request,p_name => 'int1',p_type => 'xsd:integer',p_value   => p_int_1);
  soap_api.add_parameter(p_request => l_request,p_name=> 'int2', p_type=> 'xsd:integer',p_value   => p_int_2);
  l_response := soap_api.invoke(p_request => l_request, p_url=> l_url,  p_action => l_soap_action);
  l_return := soap_api.get_return_value(p_response  => l_response,p_name=> l_result_name, p_namespace => NULL);
END;

请告诉我哪里出错了。

【问题讨论】:

  • 我很确定您的问题是 Oracle 没有正确处理端口 9001。你找到解决办法了吗?

标签: web-services oracle oracle10g plsqldeveloper


【解决方案1】:

您的 TNS 设置不正确或 TNS 服务未运行。这就是UTL_HTTP api 不起作用的原因(由SOAP_API 使用)。

按照this 链接进行故障排除并解决此问题。

【讨论】:

  • 嗨 Annjawn,感谢您的回复,但是当我在托管的应用程序中访问演示 Web 服务时,我可以访问,但是当我尝试从本地主机访问 Web 服务时,我无法访问。这意味着我的oracle服务器端配置没有问题,因为我可以访问其他Web服务,请建议
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-26
  • 2010-09-07
  • 2010-09-22
  • 2012-03-03
  • 1970-01-01
  • 1970-01-01
  • 2010-09-15
相关资源
最近更新 更多