|
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
|