<p>I'm trying to load spring beans using XmlWebApplicationContext setConfigLocations method.  However, I keep getting a </p>

<pre><code>BeanIsAbstractException
</code></pre>

<p>I know that the bean is abstract, I have it configured this way, so Spring should know not to try to instantiate it.</p>

<p>I'm using Spring2.0.8.jar with jetspeed2.1.</p>

<p>Spring bean:</p>

<pre><code>&lt;bean id="ThreadPool" abstract="true" class="com.sample.ThreadPoolFactoryBean"/&gt;
</code></pre>

<p>Code:</p>

<pre><code>ctx = appContext;
    appContext.refresh();
    BeanFactory factory = appContext.getBeanFactory();
    String[] beansName = appContext.getBeanFactory()
            .getBeanDefinitionNames();

...

map.put(beansName[mnCnt], factory.getBean(beansName[mnCnt]));
</code></pre>

<p>Anyone have any ideas?</p>

The following code will try, and fail to create an instance of your abstract class:
```
```
map.put(beansName[mnCnt], factory.getBean(beansName[mnCnt]));
```
```
Just so there is no confusion, 'abstract' beans are
not the same
as abstract classes.They are primarily a convenient mechanism for reducing duplicate property settings.
A child bean definition will inherit constructor argument values, 
      property values and method overrides from the parent, with the option 
      to add new values. If init method, destroy method, factory bean and/or 
      factory method are specified, they will override the corresponding 
      parent settings.
A contrived example:
```
```
class Fruit {
    private String colour;
    private String name;
    // setters...
}

class Car {
    private String colour;
    private String manufacturer;
    // setters...
}
```
```
And:
```
```
<!-- specifying a class for an abstract bean is optional -->
<bean id="sharedPropsBean" abstract="true">
    <property name="colour" value="red" />
</bean>

<bean id="myFruit" parent="sharedPropsBean" class="Fruit">
    <property name="name" value="apple" />
</bean>

<bean id="myCar" parent="sharedPropsBean" class="Car">
    <property name="manufacturer" value="Ferrari" />
</bean>
```
```