From: Jost B. <jos...@ya...> - 2005-08-05 18:20:05
|
Hi, a extermal class is missing, so the bridge was not able to invoke the constructor, it has returned the class instead. You should be able to locate the error message in the bridge log file. > So apparantly, as to see in the first line, $dataset > is indeed on object Objects are displayed as ...@hashCode, classes as class:<name>. But you're right that the message is not clear enough. I will change the error message for the next version. Your next question is probably what the NoClassDefFoundError means, we have an open problem report for this (it's a problem specific to the sun platform, other platforms such as ecma335 and gnu java don't have this problem). Kai has already addressed one part of the problem with his dynamic class loader which does not confuse classes loaded from different url classloaders anymore. However, the fundamental problem cannot be fixed by us, this is something that sun must handle. But it should be easy to avoid the problems if one obeys the following rules: * All interconnected classes must be accessible by the same classloader. This means that all interconnected classes must be loaded by the same java_require() call. java_require(foo); java_require(bar); does not work if foo and bar reference each other. This condition stays the same unless you stop the bridge or call java_reset(). (Reason is that even if you use java_require(foo;bar) after that, the loader has already cached the broken foo and the queries for bar jump off from there). * No class may be appear in more than java_require() statement call within the same php script. Regards, Jost Boekemeier ___________________________________________________________ Gesendet von Yahoo! Mail - Jetzt mit 1GB Speicher kostenlos - Hier anmelden: http://mail.yahoo.de |