From: Brad C. <bk...@mu...> - 2001-01-04 14:13:13
|
I'm writing a Console Snapin for Novell's Console One application. I had this working in JPython (last rev), but recompiling with Jython 2.0b1 produces a .class that fails to function. Unfortunately I did my earlier work using ConsoleOne 1.2c, but upgraded to 1.2d at the same time I switched to Jython. (stupid, I know). I don't think the ConsoleOne upgrade is related to the failure. Anyway, here's the scoop. 1. The Python code fragment: from com.novell.application.console.snapin import Registration from com.novell.application.console.snapin import RegistrationItem from com.novell.application.console.snapin import scope from com.novell.application.console.snapin import Shell from com.novell.admin.ns.nds import NDSNamespace from jarray import array class FTPDSnapin_Registration(Registration): def __init__(self): pass def getRegistration(self): "@sig public com.novell.application.console.snapin.RegistrationItem[] getRegistration()" myscope = scope.NamespaceTypeScope(Shell.SNAPIN_PAGE,NDSNamespace.name,"User") info = array([RegistrationItem(myscope,"com.MurkWorks.FTPD.FTPDSnapin_PageSnapin")],RegistrationItem) return info 2. The import that's failing is from com.novell.admin.ns.nds import NDSNamespace This class is in ConsoleOne.jar, which is in my classpath. Running jython interactively produces this: Jython 2.0beta1 on java1.3.0 (JIT: null) Type "copyright", "credits" or "license" for more information. >>> from com.novell.admin.ns.nds import NDSNamespace >>> NDSNamespace.name 'NDS' >>> So the import works interactively. 3. I use jythonc to create a deep .jar and have it loaded by ConsoleOne. ConsoleOne produces this diagnostic info: Reordered classpath = ..\ConsoleOne.jar;..\ConsoleOneCore.jar;..\ConsoleOneExt\collections.ja r;..\ConsoleOneExt\jgl3.1.0.jar;..\ConsoleOneExt\jh.jar;..\ConsoleOneEx t\Widgets.jar;..\help;..\ConsoleOneExt\njha.jar;..\ConsoleOneExt\jclient.j ar;..\ConsoleOneExt\jndi.jar;..\ConsoleOneExt\njcl.jar;..\ConsoleOneExt\ NWFS.jar;..\ConsoleOneExt\JReportBeans.zip (note that ConsoleOne.jar is in the classpath) Then this exception: >>> Creating manifest object for C:\Novell\ConsoleOne\1.2\snapins\FTPDSnapin.jar Collection version = Implementation-Version(null) Shell version = Specification-Version(null) Auto detecting registrars in C:\Novell\ConsoleOne\1.2\snapins\FTPDSnapin.jar Loading registrar -> class com.MurkWorks.FTPD.FTPDSnapin_Registration SnapinClassLoader could not load bytes for class com.novell.admin Throwing ClassNotFoundException. Exception while trying to instantiate com/MurkWorks/FTPD/FTPDSnapin_Registration.class - Java Traceback: at org.python.core.Py.ImportError(Py.java:180) at org.python.core.imp.dottedFind(imp.java:414) at org.python.core.imp.importName(imp.java:436) at org.python.core.imp.importName(imp.java:509) at org.python.core.ImportFunction.load(__builtin__.java:962) at org.python.core.ImportFunction.__call__(__builtin__.java:956) at org.python.core.PyObject.__call__(PyObject.java:250) at org.python.core.__builtin__.__import__(__builtin__.java:916) at org.python.core.imp.importFromAs(imp.java:566) at com.MurkWorks.FTPD.FTPDSnapin_Registration$_PyInner.main$4(FTPDSnapin_Registration.java:79) at com.MurkWorks.FTPD.FTPDSnapin_Registration$_PyInner.call_function(FTPDSnapin_Registration.java:48) at org.python.core.PyTableCode.call(PyTableCode.java:155) at org.python.core.imp.createFromCode(imp.java:157) at org.python.core.Py.initProxy(Py.java:726) at com.MurkWorks.FTPD.FTPDSnapin_Registration.<init>(FTPDSnapin_Registration.java:105) at java.lang.Class.newInstance0(Native Method) at java.lang.Class.newInstance(Unknown Source) at com.novell.application.console.shell.DefaultSnapinLister.checkForRegistration(DefaultSnapinLister.java) at com.novell.application.console.shell.DefaultSnapinLister.autoRegister(DefaultSnapinLister.java) at com.novell.application.console.shell.DefaultSnapinLister.loadSCI(DefaultSnapinLister.java) at com.novell.application.console.shell.DefaultSnapinLister.loadSCIs(DefaultSnapinLister.java) at com.novell.application.console.shell.DefaultSnapinLister.getSnapinCollections(DefaultSnapinLister.java) at com.novell.application.console.shell.Registry.registerSnapins(Registry.java) at com.novell.application.console.shell.ConsoleShell.start(ConsoleShell.java) at com.novell.application.console.shell.Console.main(Console.java) Traceback (innermost last): File "C:\Novell\ConsoleOne\1.2\FTPD\FTPDSnapin_Registration.py", line 0, in main ImportError: No module named admin 4. I'm using jdk 1.3 Any suggestions? Brad Clements, bk...@mu... (315)268-1000 http://www.murkworks.com (315)268-9812 Fax netmeeting: ils://ils.murkworks.com AOL-IM: BKClements |