jasper Unknown hyperlink target 0

trying first steps with jasper, I got the following:
java.lang.Exception: Unknown hyperlink target 0

The way I call the report:

var cServ = forms[globals.gAktForm].controller.getServerName()	
application.updateUI()
plugins.jasperPluginRMI.runReport(cServ,'test2.jasper',true,OUTPUT_FORMAT.VIEW,null,null)

This works fine:

var cRepoDir =	plugins.jasperPluginRMI.reportDirectory
var aRepos = plugins.jasperPluginRMI.getReports()

I use the newest versions of everything (servoy, jasper)
Any ideas what i could do with this ?
Thanke you.

The Logfile:
2010-10-26 10:30:33,906 ERROR [AWT-EventQueue-0] com.servoy.j2db.util.Debug - Throwable
net.sf.jasperreports.engine.JRRuntimeException: Unknown hyperlink target 0
at net.sf.jasperreports.engine.JRHyperlinkHelper.getLinkTarget(JRHyperlinkHelper.java:269)
at net.sf.jasperreports.engine.base.JRBaseTextField.normalizeLinkTarget(JRBaseTextField.java:313)
at net.sf.jasperreports.engine.base.JRBaseTextField.readObject(JRBaseTextField.java:377)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at java.io.ObjectStreamClass.invokeReadObject(Unknown Source)
at java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
at java.util.ArrayList.readObject(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at java.io.ObjectStreamClass.invokeReadObject(Unknown Source)
at java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
at java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readArray(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
at java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
at java.io.ObjectInputStream.defaultReadObject(Unknown Source)
at net.sf.jasperreports.engine.base.JRBaseReport.readObject(JRBaseReport.java:742)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at java.io.ObjectStreamClass.invokeReadObject(Unknown Source)
at java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:90)
at net.sf.jasperreports.engine.util.JRLoader.loadObjectFromLocation(JRLoader.java:246)
at net.sf.jasperreports.engine.util.JRLoader.loadObjectFromLocation(JRLoader.java:214)
at com.servoy.plugins.jasperreports.JasperReportsServer.getJasperReport(JasperReportsServer.java:153)
at com.servoy.plugins.jasperreports.JasperReportsServer.getJasperPrint(JasperReportsServer.java:212)
at com.servoy.plugins.jasperreports.JasperReportsProvider.runReport(JasperReportsProvider.java:381)
at com.servoy.plugins.jasperreports.JasperReportsProvider.js_runReport(JasperReportsProvider.java:305)
at com.servoy.plugins.jasperreports.JasperReportsProvider.js_runReport(JasperReportsProvider.java:302)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:179)
at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:353)
at org.mozilla.javascript.Interpreter.interpretLoop(Interpreter.java:3666)
at org.mozilla.javascript.Interpreter.interpret(Interpreter.java:2680)
at org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:166)
at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:387)
at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3127)
at org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:165)
at com.servoy.j2db.scripting.ScriptEngine.executeFunction(ScriptEngine.java:458)
at com.servoy.j2db.debug.RemoteDebugScriptEngine.executeFunction(RemoteDebugScriptEngine.java:382)
at com.servoy.j2db.FormController.executeFunction(FormController.java:3972)
at com.servoy.j2db.FormController.executeFunction(FormController.java:3860)
at com.servoy.j2db.FormController.executeFunction(FormController.java:3782)
at com.servoy.j2db.FormController$ScriptExecuter.executeFunction(FormController.java:3637)
at com.servoy.j2db.ui.BaseEventExecutor.fireEventCommand(BaseEventExecutor.java:270)
at com.servoy.j2db.ui.BaseEventExecutor.fireActionCommand(BaseEventExecutor.java:217)
at com.servoy.j2db.ui.BaseEventExecutor.fireActionCommand(BaseEventExecutor.java:212)
at com.servoy.j2db.smart.dataui.AbstractScriptButton$2.actionPerformed(AbstractScriptButton.java:826)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

Hi,

Probably the plugin isn´t compatible with the latest Jasper Report version.
I got the same error when updated to IReport 3.7.2 and the plugin libraries still remains in the 3.7.1.

victor.rojo:
Probably the plugin isn´t compatible with the latest Jasper Report version.
I got the same error when updated to IReport 3.7.2 and the plugin libraries still remains in the 3.7.1.

Thank you Victor,
After your suggestion I removed the installed version 3.7.5 and installed the version 3.7.1.
Now just nothing happens if I call the plugin. No reaction, no error message, nothing in the
servoy_log.txt.

Only when I stop with the debugger and execute the statement in the interactive console I receive
“Error during evaluation:org/codehaus/groovy/control/CompilationFailedException”

Any help, or a “hello world tutorial” from servoy ?

I am using JasperReports-3.7.3 and it works fine! Put i did never use the 3.7.2! With the 3.7.5 I had the hyperlink Error too.

The second problem is because you are using groovy as report language and then the report throws no errors. You should set the report language in the report properties to Java. Then it will work or you get the error.

Regards, Stef

stefbrt:
The second problem is because you are using groovy as report language and then the report throws no errors. You should set the report language in the report properties to Java. Then it will work or you get the error.
Regards, Stef

Wow, bingo, It works !
I didn’t see that groovy option during just following the report wizard. And dealing around with documentation and
different version problems I never expected that the solution will be so closed :x

Many thanks to all helpers and Stef, if we meet in Schaffhausen i have to spend a big beer !
Regards

I’m exploring possibilities to create reports based on XML source. (real newbie on jasper, not on servoy)
I use iReport 3.7.3 (after having read this post) and using the 3.0.0 plugin

Using the plugin I set the reportfolder to:

plugins.jasperPluginRMI.reportDirectory = 'c:\\Servoy_all\\reports\\';

plugins.jasperPluginRMI.getReports() seems to return some kind of nullpointer

plugins.jasperPluginRMI.runReport(currentcontroller.getServerName(),‘SalesInvoice.jasper’,null,‘view’,null,‘nl’);
gives the unknown hyperlink error.

So: what is this all about?

Hello,

Where are you compiling your reports? Are you compiling in Servoy via the plugin or are you compiling in iReport?

I’m compiling via iReport.

Marc,

you should set your report directory via the server admin plugins page.
Set the ‘directory.jasper.report’ property (and optionally the ‘directories.jasper.extra’ property for fonts)

It seems the reportDirectory property of the plugin doesn’t change the server value.

Hi,

you can try to use an older version of iReport. In 3.1.0 beta 1 they just upgraded the plugin to use 3.7.1 library, so in the 3.0.0 plugin the 3.7.3 isn´t supported.
Or upgrade the plugin jars to the 3.7.3.

Hope this helps.

Thnkx for your pointers:

ptalbot:
It seems the reportDirectory property of the plugin doesn’t change the server value.

I doubt if this is the problem, if I specify a wrong folder (on purpose) I get pointers in this direction.
this isn’t the case
(BTW: you’re awake early :wink: )

victor.rojo:
you can try to use an older version of iReport. In 3.1.0 beta 1 they just upgraded the plugin to use 3.7.1 library, so in the 3.0.0 plugin the 3.7.3 isn´t supported.

ok, then I’ll have to look for a stable version. Seems that the 3.6.1 version of iReport had problems as well.

So the iReport version must be in a specific range otherwise the plugincode may break > is this documented somewhere?

mboegem:
So the iReport version must be in a specific range otherwise the plugincode may break > is this documented somewhere?

I think that not… but you can check the jasperreports-3.X.X.jar version in the plugins/servoy_japerreports folder. I just download the 3.0.0 plugin and it’s the 3.6.0, so try with iReports 3.6.0 or previous.

You can use any version of iReport but go into preferences…compatibility and set to 3.7.1. That will ensure the jrxml is written against 3.7.1’s schema.

Also, jfyi…google jaspersoft studio. That’s jaspers new eclipse based iReport. Personally I’m really looking forward to it as I think it will provide new integration opportunities.

jbader:
You can use any version of iReport but go into preferences…compatibility and set to 3.7.1. That will ensure the jrxml is written against 3.7.1’s schema.

Ah thnkx… that helps not having to download new versions… (or should I say ‘old’ versions :wink: )

Can this error also come from a wrong datasource?
I’m trying to have the report based on an XML file. ( which holds different data for each report of course)
in iReport I just use an xml datasource (pointing to a file) based on xpath, but maybe I have to change things for have the report running from Servoy…

mboegem:

jbader:
You can use any version of iReport but go into preferences…compatibility and set to 3.7.1. That will ensure the jrxml is written against 3.7.1’s schema.

Ah thnkx… that helps not having to download new versions… (or should I say ‘old’ versions :wink: )

Can this error also come from a wrong datasource?
I’m trying to have the report based on an XML file. ( which holds different data for each report of course)
in iReport I just use an xml datasource (pointing to a file) based on xpath, but maybe I have to change things for have the report running from Servoy…

In Servoy you can use 2 kinds of sources for your reports: foundset or a database server connection (in which case your SQL will be in the report), setting a source in iReport is independent to the source you will use in the end, it is used to test your report (and can be switched easily), so I guess your error is coming from that, yes.

jbader:
You can use any version of iReport but go into preferences…compatibility and set to 3.7.1. That will ensure the jrxml is written against 3.7.1’s schema.

New with Jasper…

I tried the latest version of iReport (4.0.1) and set the compatibility to 3.7.1-3.7.2, but got the “Unknown hyperlink target 0” error (plugin: jasperreports-3.7.1.jar). The I tried an old version of iReport I had installed a long time ago - 3.5.3 and there runReport works. What is the latest version that works? I don’t feel like downloading one after the other until it stops working…

Thanks
Reto

PS: Servoy Version: 4.1.7 - build 690, OS X 10.6.7, Java SE 6