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

Reply via email to