oracle调用webservice出现找不到服务的异常,代码如下:
create or replace
Function Test(
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_namespace_name varchar2(200);
    L_Input_Params Utl_Dbws.Anydata_List;
  Begin
    L_Wsdl_Url        := 'http://www.usoftchina.com/ws95/services/vendor?wsdl';
    L_Service_Name    := 'vendorService';
    L_Operation_Name  := 'vendorinfo';
    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=>'vendor',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,2000000000);
  END test;
-----------抛出的异常是ORA-29532: Java 调用被未捕获的 Java 异常错误终止: java.lang.IllegalAccessException: javax.xml.rpc.ServiceException: Error processing WSDL document:  
javax.xml.rpc.ServiceException: Error processing WSDL document:  
javax.xml.rpc.ServiceException: Cannot find service:  vendorService请问高手们,怎么解决?webserviceoracle

解决方案 »

  1.   

    放在JAVA程序里面是可以调用的,要换成用ORACLE数据库调用
      

  2.   

    看报错的堆栈明显是人家的webservice有权限控制的,你从Oracle数据库层面调用没通过人家的验证
      

  3.   

    http://www.oracle-base.com/articles/10g/utl_dbws-10g.php
      

  4.   

    这个例子我看过,试了下,也是一样的错误这个例子没有问题,我测试成功了,而且测试主机写的webservice也成功了,只是解析的时候要注意