It does not matter which classloader you use. The classes loaded by the SystemClassLoader will allways be available due to the ClassLoader parent delegation.
Regards, Hiram >From: Jason Dillon <[EMAIL PROTECTED]> >To: Dain Sundstrom <[EMAIL PROTECTED]> >CC: JBoss-dev <[EMAIL PROTECTED]> >Subject: Re: [JBoss-dev] Loading array class object by name >Date: Sun, 24 Feb 2002 18:18:15 -0800 > >Hrm... did you try using ClassLoader.getSystemClassLoader() ? > >--jason > > >Dain Sundstrom wrote: > >>Doesn't work. I tried [Ljava/lang/Object; and both without the >>semicolon. >> >>-dain >> >>Jason Dillon wrote: >> >>>Try loading "[Ljava.lang.Object;" instead... which is the class name >>>returned from Object[].class.getName(); >>> >>>--jason >>> >>> >>>Dain Sundstrom wrote: >>> >>>> >>>> >>>>Jason Dillon wrote: >>>> >>>>>What is the value for name you are using? >>>> >>>> >>>> >>>> >>>> >>>>In my test code "java.lang.Object[]" >>>> >>>> >>>>>Why not just use Class.class? >>>> >>>> >>>> >>>> >>>> >>>>Because I am trying to load a parameter type from an xml file that >>>> >>>>just has the string name of the type. >>>> >>>> >>>> >>>>>Or if you really want to use Class.forName to load Class, then you >>>>>should be able to use the system class loader. >>>> >>>> >>>> >>>> >>>>> >>>>>Is this after yesterdays Server/ServerLoader change? >>>> >>>> >>>> >>>> >>>> >>>>No new feature. Class.forName docs say you can load arrays but it >>>>is broken. Here is the code I use now: >>>> >>>>private Class convertToJavaClass(String name) throws >>>>DeploymentException { >>>> // Check primitive first >>>> for (int i = 0; i < PRIMITIVES.length; i++) { >>>> if(name.equals(PRIMITIVES[i])) { >>>> return PRIMITIVE_CLASSES[i]; >>>> } >>>> } >>>> >>>> int arraySize = 0; >>>> while(name.endsWith("[]")) { >>>> name = name.substring(0, name.length()-2); >>>> arraySize++; >>>> } >>>> >>>> try { >>>> // get the base class >>>> Class c = entity.getClassLoader().loadClass(name); >>>> >>>> // if we have an array get the array class >>>> if(arraySize > 0) { >>>> int[] dimensions = new int[arraySize]; >>>> for(int i=0; i<arraySize; i++) { >>>> dimensions[i]=1; >>>> } >>>> c = Array.newInstance(c, dimensions).getClass(); >>>> } >>>> >>>> return c; >>>> } catch(ClassNotFoundException e) { >>>> throw new DeploymentException("Parameter class not found: " + >>>> name); >>>> } >>>>} >>>> >>>>This is lame but works. >>>> >>>>-dain >>> >>> >>> >>> >> > > > >_______________________________________________ >Jboss-development mailing list >[EMAIL PROTECTED] >https://lists.sourceforge.net/lists/listinfo/jboss-development _________________________________________________________________ MSN Photos is the easiest way to share and print your photos: http://photos.msn.com/support/worldwide.aspx _______________________________________________ Jboss-development mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-development