db-derby-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Krzysztof N <yaz...@gmail.com>
Subject Re: Unable to use Table function due to java.lang.ClassNotFoundException while class is clearly reachable..
Date Wed, 25 Mar 2009 11:16:19 GMT

Futhermore, I'm able to stop on breakpoint while debugging this table
function and  select'ing does not even have a chance to call it, obviously.
Best Regards



Krzysztof N wrote:
> 
> Hello,
> I'm trying to get basic table function running without much success.
> Either error is misleading or I missed some basic point, could you
> please advise?
> 
> public class DerbyBlobTableFunction {
> 
>  //this works
>   public static int returnSth()
>     {
>         return 1;
>     }
> 
> //does not work, see error below
>  public static ResultSet getTSValuesEmpty()  throws SQLException
>     {
>          List<double[]> results = new ArrayList<double[]>();
>         results.add(new double[]{1.0,2.0,3.0});
>          ResultSet rs = new ResultSetTemplate(results);
> --//ResultSetTemplate implements ResultSet but same error with Derby
> impl of ResultSet
>         return rs;
>     }
> 
> }
> 
> 
> then
> 
> 
> CALL SQLJ.install_jar
> ('/pathto/kn.jar', 'APP.kn', 0); -- OK
> 
> CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY
> ('derby.database.classpath', 'APP.kn'); --OK
> 
> 
> CREATE FUNCTION MYFUNC() returns int PARAMETER STYLE JAVA reads
> sql data language JAVA EXTERNAL NAME
> ''gaia.cu7.dal.DerbyBlobTableFunction.returnSth'; --OK
> 
> values MYFUNC() ; --OK
> returns:
> 
> 1
> 
> 
> CREATE FUNCTION getTSValuesEmpty()
> RETURNS TABLE	
> (	
>   obs      double,
>   val      double,	
>   valError double
> )
> LANGUAGE JAVA
> PARAMETER STYLE DERBY_JDBC_RESULT_SET
> reads SQL data --  switching to no sql does not change
> EXTERNAL NAME ''gaia.cu7.dal.DerbyBlobTableFunction.getTSValuesEmpty'
> --OK
> 
> then:
> 
> select * from table ( getTSValuesEmpty() ) t;
> 
> gives:
> 
> An error occurred when executing the SQL command:
> select * from table ( getTSValuesEmpty() ) t
> The exception 'java.lang.ClassNotFoundException:
> gaia.cu7.dal.DerbyBlobTableFunction' was thrown while evaluating an
> expression. [SQL State=38000, DB Errorcode=20000]
> Next: Java exception: 'gaia.cu7.dal.DerbyBlobTableFunction:
> java.lang.ClassNotFoundException'. [SQL State=XJ001]
> 
> Execution time: 0.04s
> 
> 1 statement(s) failed.
> 
> 
> _but_
> 
> values getTSValuesEmpty();
> 
> gives:
> 1
> gaia.cu7.dal.ResultSetTemplate@10fa2e17
> 
> 
> MacOS,  Derby 10.4.2.0, embedded mode.
> 
> 
> Could you please enlighten me what could be wrong? Seems error message
> is plain wrong as 'values' returns the reference to resultset, and
> regular function from the same class works as well as values call..
> 
> Best regards,
> Krzysztof
> 
> 

-- 
View this message in context: http://www.nabble.com/Uinable-to-use-Table-function-due-to-java.lang.ClassNotFoundException--while-class-is-clearly-reachable..-tp22478383p22699492.html
Sent from the Apache Derby Users mailing list archive at Nabble.com.


Mime
View raw message