This previously worked in glassfish v2.1:

Code:
<bean id="threadPool" class="org.springframework.jca.work.glassfish.GlassFishWorkManagerTaskExecutor">
	<property name="threadPoolName" value="mediaSourceTasks" />
</bean>
However in glassfish v3 I get this exception

Code:
Caused by: org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.jca.work.glassfish.GlassFishWorkManagerTaskExecutor]: Constructor threw exception; nested exception is java.lang.IllegalStateException: Could not initialize GlassFishWorkManagerTaskExecutor because GlassFish API is not available: java.lang.NoSuchMethodException: com.sun.enterprise.connectors.work.WorkManagerFactory.getWorkManager(java.lang.String)
	at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:115)
	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:61)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:877)
	... 77 more
Caused by: java.lang.IllegalStateException: Could not initialize GlassFishWorkManagerTaskExecutor because GlassFish API is not available: java.lang.NoSuchMethodException: com.sun.enterprise.connectors.work.WorkManagerFactory.getWorkManager(java.lang.String)
	at org.springframework.jca.work.glassfish.GlassFishWorkManagerTaskExecutor.<init>(GlassFishWorkManagerTaskExecutor.java:52)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
	at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:100)
	... 79 more