oracle 调webservice,oracle 调用webservice疏失

oracle 调用webservice出错

oracle 10g 调用 axis2,接口有发布成功。但oracle 调用有问题。第一次写oracle 调用 webservice.

CREATE OR REPLACE FUNCTION call_sayHello(username IN VARCHAR2)

RETURN VARCHAR2 AS

l_service        SYS.UTL_DBWS.service;

l_call           SYS.UTL_DBWS.call;

l_result         ANYDATA;

l_wsdl_url       VARCHAR2(1024);

l_service_name   VARCHAR2(200);

l_operation_name VARCHAR2(200);

l_input_params   SYS.UTL_DBWS.anydata_list;

BEGIN

l_wsdl_url := 'http://192.168.0.169:8081/ic/services/ICSMSService?wsdl';

l_service_name := 'ICSMSService';

l_operation_name := 'sendMsg';

l_service := SYS.UTL_DBWS.create_service(wsdl_document_location => URIFACTORY.getURI(l_wsdl_url),

service_name           => l_service_name);

l_call := SYS.UTL_DBWS.create_call(service_handle => l_service,

port_name      => NULL,

operation_name => l_operation_name);

l_input_params(1) := ANYDATA.ConvertVarchar2(username);

l_result := SYS.UTL_DBWS.invoke(call_handle  => l_call,

input_params => l_input_params);

SYS.UTL_DBWS.release_call(call_handle => l_call);

SYS.UTL_DBWS.release_service(service_handle => l_service);

RETURN ANYDATA.AccessVarchar2(l_result);

EXCEPTION

WHEN OTHERS THEN

dbms_output.put_line(sqlerrm);

RETURN NULL;

return sqlerrm;

END call_sayHello;

报错

ORA-29532: Java 调用被未捕获的 Java 异常错误终止: serialization error: java.lang.IllegalArgumentException: getSerializer requires a Java type and/or an XML type

求实例或发现错误。

------解决方案--------------------

已解决。根据Oracle 官方demo修改了一下。如下。

create or replace function FUNC_GENERATE_LOGINNAME(xmlstring VARCHAR2)

return VARCHAR2 AS

service_ sys.utl_dbws.SERVICE;

call_ sys.utl_dbws.CALL;

service_qname sys.utl_dbws.QNAME;

port_qname sys.utl_dbws.QNAME;

operation_qname sys.utl_dbws.QNAME;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值