oracle调用webservice

有个项目需要用数据库调用webservice,找了很多都不行。按照上面的安装了包,也执行了数据库脚本。然后用下面这段代码调用,总是报错:
[color=#FF0000]ORA-29532: Java 调用被未捕获的 Java 异常错误终止: serialization error: java.lang.IllegalArgumentException: getSerializer requires a Java type and/or an XML type[/color]
跟踪进去看调用的返回值变量l_service等都是负数。  网上都是这样代码,其他的也找不到了。create or replace function FUNC_GENERATE_LOGINNAME(xmlstring VARCHAR2)
return VARCHAR2
   AS
       l_service utl_dbws.SERVICE;
       l_call utl_dbws.call;
       l_result ANYDATA;
       l_wsdl_url VARCHAR2(1024);
       l_service_name VARCHAR2(200);
       l_operation_name VARCHAR2(200);
       l_input_params UTL_DBWS.anydata_list;
    BEGIN
       l_wsdl_url := 'http://192.168.2.67:88/TaskList.asmx?wsdl';
       l_service_name := 'TaskList';
       l_operation_name := 'GetCurrentTask';
       l_service := UTL_DBWS.create_service(wsdl_document_location=>URIFACTORY.getURI(l_wsdl_url),service_name=>l_service_name);

       l_call := UTL_DBWS.create_call(service_handle=>l_service,port_name=>NULL,operation_name=>l_operation_name);
       l_input_params(0) := ANYDATA.ConvertVarchar2(xmlstring);

       l_result := UTL_DBWS.invoke(call_handle=>l_call,input_params=>l_input_params);
       UTL_DBWS.release_call (call_handle=>l_call);
       UTL_DBWS.release_service (service_handle=>l_service);
       RETURN ANYDATA.AccessVarchar2(l_result);
    EXCEPTION
      WHEN OTHERS THEN
        RETURN substr(sqlerrm,0,2000);
    END FUNC_GENERATE_LOGINNAME;
   
   

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值