Tony Winslow wrote:
I have this class:
public class Say {
public static int say(int i) {
System.out.println ("* Say: " + i);
return i;
}
public static int say2(String msg) {
System.out.println("** " + msg);
return 1;
}
}
and I created a function in Derby:
create function say2(msg varchar(50)) returns integer
parameter style java no sql language java
external name ' Say.say2';
but when I want to use it, error occurs:
ERROR 42X50: No method was found that matched the method call
Say.say2(java.lang
.String), tried all combinations of object and primitive types and any
possible
type conversion for any parameters the method call may have. The
method might e
xist but it is not public and/or static, or the parameter types are
not method i
nvocation convertible.
And I created another function:
create function say(i integer) returns integer
parameter style java no sql language java
external name 'Say.say';
It works fine.
I've tried hard to figure it out but failed. Can anybody help me?
Thank you in advance!!!
Hi Tony -
At first I thought your classpath might not be setup correctly but since
Say.say executes I assume the jarfile was loaded and added to the
classpath. Some things you might check:
- There is a leading space in your 'external name' declaration.
external name ' Say.say2';
Try dropping and redeclaring the function without the leading space.
- Check to be sure that the jarfile that got loaded into the database
has both classes in it. You can find it (renamed) under the JAR folder
of the database.