Hi I'm using Javassist as a library for our library (InterCommunication on Ginga) that
with PhoneME + Personal Basis Profile will be the platform for embedded devices (digital
tv). The question is that we're using Javassist to create Stubs on the fly for Xlets,
which is like Applets but for Digital TV. However since Javassist will be a core component
of our library it will be in the XbootClassPath. Even through we add (appending or
inserting) the AppClassCL, that views the ClassPath, we can sucesfully find the targeting
class that we want however when we try to load we get this error described below.
One reason is that the CL of the makeClass method is using the CL that loaded javassist,
how can we do a workaround on that situation?
Thanks in advance,
Marcos
Error Message:
CAN WE FIND??
file:/home/marcosroriz/workspace/UFG-InterAPPJava-SimpleApplication/dist/Server.class
| java.lang.ClassNotFoundException: Server
| at java.lang.ClassLoader.loadBootstrapClass(Unknown Source)
| at java.lang.Class.forName0(Native Method)
| at java.lang.Class.forName(Unknown Source)
| at br.ufg.inf.core.interapp.ClassCreator.makeClass(Unknown Source)
| at br.ufg.inf.core.interapp.Registry.lookup(Native Method)
| at br.ufg.inf.core.interapp.IxcRegistry.lookup(Unknown Source)
| at Client.startXlet(Unknown Source)
| at com.sun.xlet.XletManager.handleRequest(Unknown Source)
| at com.sun.xlet.XletStateQueue.dispatchRequests(Unknown Source)
| at com.sun.xlet.XletStateQueue$1.run(Unknown Source)
| at java.lang.Thread.run(Unknown Source)
| at java.lang.Thread.startup(Unknown Source)
| java.lang.ClassCastException: Server_Stub
| at Client.startXlet(Unknown Source)
| at com.sun.xlet.XletManager.handleRequest(Unknown Source)
| at com.sun.xlet.XletStateQueue.dispatchRequests(Unknown Source)
| at com.sun.xlet.XletStateQueue$1.run(Unknown Source)
| at java.lang.Thread.run(Unknown Source)
| at java.lang.Thread.startup(Unknown Source)
|
Code:
private static CtClass cc;
|
| public static void makeClass(String iName) {
| try {
| ClassPool pool = ClassPool.getDefault();
|
| System.out.println("SYS CL: " + ClassLoader.getSystemClassLoader());
|
| pool.insertClassPath(new LoaderClassPath(pool.getClass().getClassLoader()));
| pool.insertClassPath(new LoaderClassPath(pool.getClassLoader()));
| pool.insertClassPath(new LoaderClassPath(ClassLoader.getSystemClassLoader()));
|
| System.out.println("CAN WE FIND?? " + pool.find("Server"));
| cc = pool.makeClass(iName + "_Stub");
| ....
|
View the original post :
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4264806#...
Reply to the post :
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&a...