[Dropped] Java macro running from Basic can't find method
Posted: Fri Oct 03, 2025 3:16 pm
I am writing a JDBC replacement for ODBC since it is unstable and fails at random on some queries, and I have run into a problem.
Java code is called from Basic with this subrutine.
First call works correctly, I get my message about wrong data types.But when I try to run it second time, I get and error:
Type: com.sun.star.script.provider.ScriptFrameworkErrorException
Message: java.lang.NoSuchMethodException: StrictResolver.getProxy: Can't find method: getDoorData.
My parcel-descriptor for this code looks like this:
Java code is using some dependencies like mysql-connector-j-8.0.33.jar and protobuf-java-3.21.9.jar (this is dependency from previous file). But I am unsure how to specify them as dependencies, since when I put them on classpath (separated with semicolon) script could not find the class at all.
Java code is called from Basic with this subrutine.
Code: Select all
Sub CallJava()
Dim mspf As Object, provider As Object, script As Object
mspf = createUnoService("com.sun.star.script.provider.MasterScriptProviderFactory")
provider = mspf.createScriptProvider("")
script = provider.getScript("vnd.sun.star.script:SWILODB.pl.ms.oknadrewniane.libreoffice.database.DoorHingeSheetData.getDoorData?language=Java&location=user")
xray script.invoke(Array(Array("Julian", 2)), Array(), Array())
script = provider.getScript("vnd.sun.star.script:SWILODB.pl.ms.oknadrewniane.libreoffice.database.DoorHingeSheetData.getDoorData?language=Java&location=user")
xray script.invoke(Array(Array("192.168.56.101", "T25_0625")), Array(), Array())
End Sub
Type: com.sun.star.script.provider.ScriptFrameworkErrorException
Message: java.lang.NoSuchMethodException: StrictResolver.getProxy: Can't find method: getDoorData.
My parcel-descriptor for this code looks like this:
Code: Select all
<?xml version="1.0" encoding="UTF-8"?>
<parcel language="Java" xmlns:parcel="scripting.dtd">
<script language="Java">
<locale lang="en">
<displayname value="Get Door Data"/>
<description>
Downloads data for doors in a given queue
</description>
</locale>
<locale lang="pl">
<displayname value="Get Door Data"/>
<description>
Pobiera dane drzwi w podanej kolejce
</description>
</locale>
<functionname value="pl.ms.oknadrewniane.libreoffice.database.DoorHingeSheetData.getDoorData"/>
<logicalname value="getDoorData"/>
<languagedepprops>
<prop name="classpath" value="SWILODB.jar"/>
</languagedepprops>
</script>
</parcel>