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