1 Reply Latest reply: Feb 13, 2013 7:38 AM by Mihael RSS

    Calling the Java Method in PL/SQL Java Stored procedure errors out

    629026
      Hi,

      I have written a java class by name XYZ which has a method ABC for which there are 9 arguements being passed and its a VOID method.

      This java class has been loaded into ORACLE using DBMS_JAVA.LOADJAVA pkg, Now this class is being called in the oracle as a JAVA Stored procedure...... When ever im trying to call the procedure it throws the following error

      ORA-29531: no method
      *Cause: An attempt was made to execute a non-existent method in a
      Java class.
      *Action: Adjust the call or create the specified method.

      The code snippet as follows

      JAVA CODE:

      Class xyz
      {

      public static void Abc (String hostName,
      int port,
      String serviceURL,
      String soapAction,
      int timeOut,
      String wsUser,
      String wsPasWd,
      String keyStore,
      String keyStorePasWd)
      {
      //method implementation
      }

      }

      JAVA STORED PROCEDURE:

      create OR REPLACE procedure ABC_JAVA_SP_CALL
      (p_hostname in varchar2, p_port in number, p_serviceurl in varchar2, p_soapaction in varchar2, p_timeout in number, p_wsuser in varchar2, p_wspasswd in varchar2, p_ks_path in varchar2, p_ks_passwd in varchar2)
      as
      language java
      name 'xyz.Abc(java.lang.String, int, java.lang.String, java.lang.String, int, java.lang.String, java.lang.String, java.lang.String, java.lang.String)';

      When i try to call

      declare
      p_hostname varchar2(100);
      p_port number;
      p_serviceurl varchar2(100);
      p_soapaction varchar2(100);
      p_timeout number;
      p_wsuser varchar2(100);
      p_wspasswd varchar2(100);
      p_ks_path varchar2(100);
      p_ks_passwd varchar2(100);

      begin

      //SP which returns the values for the required parameters.

      comppkg.getvcsinfo(
      p_hostname,
      p_port ,
      p_serviceurl,
      p_soapaction,
      p_timeout,
      p_wsuser,
      p_wspasswd,
      p_ks_path,
      p_ks_passwd
      );

      Layer7_icengc_ws_tes(p_hostname,
      p_port ,
      p_serviceurl,
      p_soapaction,
      p_timeout,
      p_wsuser,
      p_wspasswd,
      p_ks_path,
      p_ks_passwd);

      end;

      This thing ends up with

      29531. 00000 - "no method %s in class %s"
      *Cause: An attempt was made to execute a non-existent method in a
      Java class.
      *Action: Adjust the call or create the specified method.

      Im not understanding what wrong am i doing

      pls help