From: Jan W. <j.w...@sc...> - 2002-01-24 16:42:25
|
Hi all, I've got a problem with a jython applet which shall be loaded via HTTPS. HTTP without the S works, no problem at all. The applet is frozen with jythonc -d Haupt.py and then all needed jar fil= es get extracted to the jpywork directory. Afterwards the jpywork directory is j= arred into the applet.jar file. This file then goes to the server. If I try to load the applet via am HTTPS server (CPython-driven slightly modified m2crypto SSLServer or stunnel before the same server without SSL= ), I get errors I do not understand. Somebody an idea? The applet runs in Mozilla with the Sun java 1.3.1_01 plugin. Traceback from plugin log window ("wird ge=F6ffnet" means opening): Determine if the applet requests to install any JAR Jar cache option: null Jar archive(s): null Jar cache version(s): null Applet Installation finished. Wird ge=F6ffnethttps://sojus:7743/applet.jar Connecting https://sojus:7743/applet.jar Wird ge=F6ffnethttps://sojus:7743/null Connecting https://sojus:7743/null Wird ge=F6ffnethttps://sojus:7743/venus/sys.class Connecting https://sojus:7743/venus/sys.class Java Traceback: at org.python.core.Py.JavaError(Py.java) at org.python.core.Py.findClassEx(Py.java) at org.python.core.SysPackageManager.findClass(SysPackageManager.java) at org.python.core.PackageManager.findClass(PackageManager.java) at org.python.core.SysPackageManager.findClass(SysPackageManager.java) at org.python.core.PyJavaPackage.__findattr__(PyJavaPackage.java) at org.python.core.PackageManager.lookupName(PackageManager.java) at org.python.core.PyModule.impAttr(PyModule.java) at org.python.core.imp.import_next(imp.java) at org.python.core.imp.import_name(imp.java) at org.python.core.imp.importName(imp.java) at org.python.core.ImportFunction.load(__builtin__.java) at org.python.core.ImportFunction.__call__(__builtin__.java) at org.python.core.PyObject.__call__(PyObject.java) at org.python.core.__builtin__.__import__(__builtin__.java) at org.python.core.imp.importOne(imp.java) at venus.master$_PyInner.main$53(master.java:1233) at venus.master$_PyInner.call_function(master.java:453) at org.python.core.PyTableCode.call(PyTableCode.java) at org.python.core.PyCode.call(PyCode.java) at org.python.core.imp.createFromCode(imp.java) at org.python.core.imp.createFromClass(imp.java) at org.python.core.imp.loadPrecompiled(imp.java) at org.python.core.imp.loadFromPath(imp.java) at org.python.core.PyModule.impAttr(PyModule.java) at org.python.core.imp.import_next(imp.java) at org.python.core.imp.import_logic(imp.java) at org.python.core.imp.import_name(imp.java) at org.python.core.imp.importName(imp.java) at org.python.core.ImportFunction.load(__builtin__.java) at org.python.core.ImportFunction.__call__(__builtin__.java) at org.python.core.PyObject.__call__(PyObject.java) at org.python.core.__builtin__.__import__(__builtin__.java) at org.python.core.imp.importOne(imp.java) at getPass$_PyInner.main$7(getPass.java:266) at getPass$_PyInner.call_function(getPass.java:93) at org.python.core.PyTableCode.call(PyTableCode.java) at org.python.core.PyCode.call(PyCode.java) at org.python.core.imp.createFromCode(imp.java) at org.python.core.imp.createFromClass(imp.java) at org.python.core.imp.loadPrecompiled(imp.java) at org.python.core.imp.loadFromPath(imp.java) at org.python.core.imp.loadFromPath(imp.java) at org.python.core.imp.load(imp.java) at org.python.core.imp.import_next(imp.java) at org.python.core.imp.import_name(imp.java) at org.python.core.imp.importName(imp.java) at org.python.core.ImportFunction.load(__builtin__.java) at org.python.core.ImportFunction.__call__(__builtin__.java) at org.python.core.PyObject.__call__(PyObject.java) at org.python.core.__builtin__.__import__(__builtin__.java) at org.python.core.imp.importOne(imp.java) at Haupt$_PyInner.main$3(Haupt.java:79) at Haupt$_PyInner.call_function(Haupt.java:45) at org.python.core.PyTableCode.call(PyTableCode.java) at org.python.core.PyCode.call(PyCode.java) at org.python.core.imp.createFromCode(imp.java) at org.python.core.Py.initProxy(Py.java) at Haupt.__initProxy__(Haupt.java:225) at Haupt.<init>(Haupt.java:203) at java.lang.Class.newInstance0(Native Method) at java.lang.Class.newInstance(Class.java:237) at sun.applet.AppletPanel.createApplet(AppletPanel.java:579) at sun.plugin.AppletViewer.createApplet(AppletViewer.java:1178) at sun.applet.AppletPanel.runLoader(AppletPanel.java:515) at sun.applet.AppletPanel.run(AppletPanel.java:293) at sun.plugin.navig.motif.MotifAppletViewer.maf_run(MotifAppletViewer.java:1= 27) at sun.plugin.navig.motif.MotifAppletViewer.run(MotifAppletViewer.java:123) at java.lang.Thread.run(Thread.java:484) Traceback (innermost last): File "/home/ian/venus/200gui/gui/Haupt.py", line 0, in main File "/home/ian/venus/200gui/gui/getPass.py", line 0, in main File "/home/ian/venus/200gui/gui/venus/master.py", line 0, in main java.lang.ClassFormatError: venus/sys (Bad magic number) at java.lang.ClassLoader.defineClass0(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:486) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:111) at sun.applet.AppletClassLoader.findClass(AppletClassLoader.java:142) at sun.plugin.security.PluginClassLoader.findClass(PluginClassLoader.java:25= 2) at java.lang.ClassLoader.loadClass(ClassLoader.java:297) at sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:108) at java.lang.ClassLoader.loadClass(ClassLoader.java:253) at org.python.core.Py.findClassEx(Py.java) at org.python.core.SysPackageManager.findClass(SysPackageManager.java) at org.python.core.PackageManager.findClass(PackageManager.java) at org.python.core.SysPackageManager.findClass(SysPackageManager.java) at org.python.core.PyJavaPackage.__findattr__(PyJavaPackage.java) at org.python.core.PackageManager.lookupName(PackageManager.java) at org.python.core.PyModule.impAttr(PyModule.java) at org.python.core.imp.import_next(imp.java) at org.python.core.imp.import_name(imp.java) at org.python.core.imp.importName(imp.java) at org.python.core.ImportFunction.load(__builtin__.java) at org.python.core.ImportFunction.__call__(__builtin__.java) at org.python.core.PyObject.__call__(PyObject.java) at org.python.core.__builtin__.__import__(__builtin__.java) at org.python.core.imp.importOne(imp.java) at venus.master$_PyInner.main$53(master.java:1233) at venus.master$_PyInner.call_function(master.java:453) at org.python.core.PyTableCode.call(PyTableCode.java) at org.python.core.PyCode.call(PyCode.java) at org.python.core.imp.createFromCode(imp.java) at org.python.core.imp.createFromClass(imp.java) at org.python.core.imp.loadPrecompiled(imp.java) at org.python.core.imp.loadFromPath(imp.java) at org.python.core.PyModule.impAttr(PyModule.java) at org.python.core.imp.import_next(imp.java) at org.python.core.imp.import_logic(imp.java) at org.python.core.imp.import_name(imp.java) at org.python.core.imp.importName(imp.java) at org.python.core.ImportFunction.load(__builtin__.java) at org.python.core.ImportFunction.__call__(__builtin__.java) at org.python.core.PyObject.__call__(PyObject.java) at org.python.core.__builtin__.__import__(__builtin__.java) at org.python.core.imp.importOne(imp.java) at getPass$_PyInner.main$7(getPass.java:266) at getPass$_PyInner.call_function(getPass.java:93) at org.python.core.PyTableCode.call(PyTableCode.java) at org.python.core.PyCode.call(PyCode.java) at org.python.core.imp.createFromCode(imp.java) at org.python.core.imp.createFromClass(imp.java) at org.python.core.imp.loadPrecompiled(imp.java) at org.python.core.imp.loadFromPath(imp.java) at org.python.core.imp.loadFromPath(imp.java) at org.python.core.imp.load(imp.java) at org.python.core.imp.import_next(imp.java) at org.python.core.imp.import_name(imp.java) at org.python.core.imp.importName(imp.java) at org.python.core.ImportFunction.load(__builtin__.java) at org.python.core.ImportFunction.__call__(__builtin__.java) at org.python.core.PyObject.__call__(PyObject.java) at org.python.core.__builtin__.__import__(__builtin__.java) at org.python.core.imp.importOne(imp.java) at Haupt$_PyInner.main$3(Haupt.java:79) at Haupt$_PyInner.call_function(Haupt.java:45) at org.python.core.PyTableCode.call(PyTableCode.java) at org.python.core.PyCode.call(PyCode.java) at org.python.core.imp.createFromCode(imp.java) at org.python.core.Py.initProxy(Py.java) at Haupt.__initProxy__(Haupt.java:225) at Haupt.<init>(Haupt.java:203) at java.lang.Class.newInstance0(Native Method) at java.lang.Class.newInstance(Class.java:237) at sun.applet.AppletPanel.createApplet(AppletPanel.java:579) at sun.plugin.AppletViewer.createApplet(AppletViewer.java:1178) at sun.applet.AppletPanel.runLoader(AppletPanel.java:515) at sun.applet.AppletPanel.run(AppletPanel.java:293) at sun.plugin.navig.motif.MotifAppletViewer.maf_run(MotifAppletViewer.java:1= 27) at sun.plugin.navig.motif.MotifAppletViewer.run(MotifAppletViewer.java:123) at java.lang.Thread.run(Thread.java:484) java.lang.ClassFormatError: java.lang.ClassFormatError: venus/sys (Bad ma= gic number) Thanks reading so far and for any help, Cheerio, --=20 J.W...@sc... - Fon +4970719457-257 Fax-211 science+computing ag - Hagellocher Weg 71-75 - 72070 T=FCbingen The nice thing about standards is that there are so many of them to choos= e from. (Andy Tanenbaum= ) |
From: Jan W. <j.w...@sc...> - 2002-01-25 10:32:09
|
On Thu, Jan 24, 2002 at 05:39:47PM +0100, Jan Wender wrote: > Hi all, >=20 > I've got a problem with a jython applet which shall be loaded via > HTTPS. HTTP without the S works, no problem at all. I now have a small jython file which shows the problem: import sys import java import javax =20 import pawt =20 class Xtest(javax.swing.JApplet): def init(s): s.getContentPane().add(javax.swing.JLabel("Applet")) #bag =3D pawt.GridBag(s.getContentPane()) #bag.addRow(javax.swing.JLabel("Applet")) #bag.add(javax.swing.JTextArea("%s" % (sys.registry,))) made a jar-file of it: jythonc -d -a -j Xtest.jar Xtest.py If the pawt package is imported the error occurs. If the statement is com= mented out, the applet works... Is it perhaps related to the comment in org/python/core/imp.java, line 31= : // Simplistic implementation // Some InputStream's might require multiple read's to get it all... private static byte[] readBytes(InputStream fp) { ? Cheerio, --=20 J.W...@sc... - Fon +4970719457-257 Fax-211 science+computing ag - Hagellocher Weg 71-75 - 72070 T=FCbingen Der Stecker war locker und das Token ist herausgefallen. Es muss irgendwo auf dem Boden liegen. Wenn Sie es gefunden haben, melden Sie sich bitte w= ieder. (Di= lbert) |
From: Samuele P. <ped...@bl...> - 2002-01-25 11:53:16
|
Hi. Please, submit a bug report on SF sf.net/projects/jython, with the content of your messages. > If the pawt package is imported the error occurs. If the statement is commented > out, the applet works... > Then don't use pawt for the moment <wink>. > Is it perhaps related to the comment in org/python/core/imp.java, line 31: > // Simplistic implementation > // Some InputStream's might require multiple read's to get it all... > private static byte[] readBytes(InputStream fp) { > ? > Nope. It's a bug in some 3rdy part classloader loading logic that throws a wrong expection when it should simply report that a class is not there. It is not directly Jython fault but Jython should be better prepared to deal with this or offer escapes. It is also possible that the new logic for relative imports in Jython makes it more vulnerable. We had a similar report from A.M. Kuchling, but we miss a bug report <wink>. Thanks, Samuele Pedroni. |
From: Jan W. <j.w...@sc...> - 2002-01-25 15:26:16
|
On Fri, Jan 25, 2002 at 12:48:13PM +0100, Samuele Pedroni wrote: > Hi. >=20 > Please, submit a bug report on SF sf.net/projects/jython, > with the content of your messages. Well, I found a Java bug relating to this (http://developer.java.sun.com/developer/bugParade/bugs/4291305.html): Th= e loading of classes fails if the html page with the applet tag is loaded v= ia HTTPS. In my case it is no problem to have the html loaded via HTTP, so this wor= ks for me now (the jarfile is still loaded via https). I have submitted my messages to SF. Cheerio, --=20 J.W...@sc... - Fon +4970719457-257 Fax-211 science+computing ag - Hagellocher Weg 71-75 - 72070 T=FCbingen One of the great skills in using any language is knowing what not to use,= what not to say. ... There's that simplicity thing again. (Ron Jeffries) |