[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qexo-general] Invoking a Java Method
From: |
Eric Safern |
Subject: |
[Qexo-general] Invoking a Java Method |
Date: |
Sun, 22 Dec 2002 23:34:43 -0800 |
Hi,
I'm trying to call a Java method, specifically
java.util.Random.nextInt(int n),
Here's some source code:
$ cat q.xql
declare namespace Random = "class:java.util.Random"
let
$rnd := Random:nextInt(613)
return ($rnd)
$
In order to invoke Java methods, I compiled the
latest build from cvs, 1.6.99 on my Mandrake Linux box.
Here's the error message:
$ java -jar ~/work/kawa/kawa-1.6.99.jar --xquery ./q.xql
Argument to 'java.util.Random.nextInt' has wrong type
at gnu.expr.GenericProc.applyN(GenericProc.java:72)
at gnu.kawa.reflect.Invoke.applyN(Invoke.java:150)
at gnu.kawa.reflect.Invoke.applyN(Invoke.java:50)
at gnu.mapping.ProcedureN.apply3(ProcedureN.java:46)
at atInteractiveLevel.apply(Unknown Source)
at gnu.mapping.CallContext.runUntilDone(CallContext.java:239)
at gnu.expr.ModuleExp.evalModule(ModuleExp.java:188)
at kawa.Shell.run(Shell.java:232)
at kawa.standard.load.loadSource(load.java:134)
at kawa.standard.load.apply(load.java:239)
at kawa.Shell.runFile(Shell.java:295)
at kawa.repl.main(repl.java:603)
$
A slightly different source code produces a different message:
$cat q2.xql
declare namespace Random = "class:java.util.Random"
define function Rand ($mx) { Random:nextInt($mx) }
let
$rnd := Rand(613)
return ($rnd)
$ java -jar ~/work/kawa/kawa-1.6.99.jar --xquery ./q2.xql
Argument #0 to 'java.util.Random.nextInt()' has wrong type (gnu.math.IntNum)
at gnu.mapping.WrongType.make(WrongType.java:56)
at atInteractiveLevel.Rand$T(Unknown Source)
at atInteractiveLevel.apply(Unknown Source)
at gnu.mapping.CpsMethodProc.apply(CpsMethodProc.java:49)
at gnu.mapping.CallContext.runUntilDone(CallContext.java:239)
at gnu.mapping.CallContext.runUntilValue(CallContext.java:253)
at gnu.mapping.CpsProcedure.applyV(CpsProcedure.java:49)
at gnu.mapping.CpsProcedure.applyN(CpsProcedure.java:25)
at gnu.mapping.ProcedureN.apply1(ProcedureN.java:29)
at atInteractiveLevel.apply(Unknown Source)
at gnu.mapping.CallContext.runUntilDone(CallContext.java:239)
at gnu.expr.ModuleExp.evalModule(ModuleExp.java:188)
at kawa.Shell.run(Shell.java:232)
at kawa.standard.load.loadSource(load.java:134)
at kawa.standard.load.apply(load.java:239)
at kawa.Shell.runFile(Shell.java:295)
at kawa.repl.main(repl.java:603)
Caused by: java.lang.ClassCastException: gnu.math.IntNum
... 16 more
$
If it matters,
$ java -version
java version "1.4.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0-b92)
Java HotSpot(TM) Client VM (build 1.4.0-b92, mixed mode)
$ uname -rs
Linux 2.4.18-6mdksmp
$
Alternatively, can anyone suggest an easy way to generate a
pseudo-random number in the range [1-x]?
I'm trying to implement a fortune(6) as a sample xquery app.
Thanks,
Eric Safern
- [Qexo-general] Invoking a Java Method,
Eric Safern <=
- [Qexo-general] Servlets from the cgi-bin wrapper - some suggested fixes and a question, Eric Safern, 2002/12/23
- [Qexo-general] Syntax questions, Eric Safern, 2002/12/24
- Re: [Qexo-general] Syntax questions, Marco Vezzoli, 2002/12/24
- RE: [Qexo-general] Syntax questions, Eric Safern, 2002/12/24
- Re: [Qexo-general] Syntax questions, Per Bothner, 2002/12/24
- RE: [Qexo-general] Syntax questions, Eric Safern, 2002/12/25
- Re: [Qexo-general] Syntax questions, Per Bothner, 2002/12/25
- [Qexo-general] Parsing command line arguments, Eric Safern, 2002/12/25