You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomee.apache.org by "Totsline, Greg" <gr...@lmco.com> on 2009/11/10 19:36:18 UTC
TransactionManager resource - no provider error
Hi -
We are injecting a javax.transaction.TransactionManager into an EJB. It works fine under JBoss, but under OpenEJB 3.1.2 we get an OpenEJBException:
No provider available for resource-ref 'null' of type 'javax.transaction.TransactionManager' for 'MyBean'. This is the same problem reported in
http://old.nabble.com/TransactionManager-injection-td19492820.html
Was there a resolution to this problem or a suggested work around?
Many Thanks.
-greg
Re: TransactionManager resource - no provider error
Posted by David Blevins <da...@visi.com>.
Actually this is one of those things that a bean is not supposed to be
able to do and is the purpose of the UserTransaction object. If you
can use that instead I definitely would as it will be portable to all
impls that pass the Java EE TCK.
That said, you could add support for injection of that type via a
PropertiesEditor like this one:
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.transaction.TransactionManager;
import java.beans.PropertyEditorManager;
public class TransactionManagerEditor extends
java.beans.PropertyEditorSupport {
static {
PropertyEditorManager.registerEditor(TransactionManager.class,
TransactionManagerEditor.class);
}
public void setAsText(String text) throws
IllegalArgumentException {
try {
InitialContext context = new InitialContext();
Object o = context.lookup("openejb:TransactionManager");
setValue(TransactionManager.class.cast(o));
} catch (NamingException e) {
throw new IllegalStateException(e);
}
}
}
(or here: http://gist.github.com/231273 )
You just need to make sure the TransactionManagerEditor loads fairly
early or move the register code close to the class where the
TransactionManager is needed.
This *should* do the trick. You might need to add a corresponding
<env-entry>, not sure if we require that. If we do you can use the
env-entries.properties file which will not conflict with JBoss at
all. (see http://openejb.apache.org/3.0/custom-injection.html)
We could probably add built in support for this, but for now the above
should work.
I've added a jira for "extended" types usable with @Resource (i.e. non-
standard), just to make sure we don't loose the feedback:
https://issues.apache.org/jira/browse/OPENEJB-1104
Feel free to add some more if you have any you need. Here's the
standard list:
https://issues.apache.org/jira/browse/OPENEJB-370
Not sure if that is comprehensive, but seems to be just missing
UserTransaction.
-David
On Nov 10, 2009, at 12:14 PM, Jean-Louis MONTEIRO wrote:
>
> Hi,
>
> it should definitely work.
> Did you provide a mappedName ?
>
> Jean-Louis
>
>
> Totsline, Greg wrote:
>>
>> Hi -
>>
>> We are injecting a javax.transaction.TransactionManager into an
>> EJB. It
>> works fine under JBoss, but under OpenEJB 3.1.2 we get an
>> OpenEJBException:
>>
>> No provider available for resource-ref 'null' of type
>> 'javax.transaction.TransactionManager' for 'MyBean'. This is the
>> same
>> problem reported in
>>
>> http://old.nabble.com/TransactionManager-injection-td19492820.html
>>
>> Was there a resolution to this problem or a suggested work around?
>>
>> Many Thanks.
>>
>> -greg
>>
>>
>>
>>
>>
>
> --
> View this message in context: http://old.nabble.com/TransactionManager-resource---no-provider-error-tp26288929p26289083.html
> Sent from the OpenEJB User mailing list archive at Nabble.com.
>
>
Re: TransactionManager resource - no provider error
Posted by Jean-Louis MONTEIRO <je...@atosorigin.com>.
Hi,
it should definitely work.
Did you provide a mappedName ?
Jean-Louis
Totsline, Greg wrote:
>
> Hi -
>
> We are injecting a javax.transaction.TransactionManager into an EJB. It
> works fine under JBoss, but under OpenEJB 3.1.2 we get an
> OpenEJBException:
>
> No provider available for resource-ref 'null' of type
> 'javax.transaction.TransactionManager' for 'MyBean'. This is the same
> problem reported in
>
> http://old.nabble.com/TransactionManager-injection-td19492820.html
>
> Was there a resolution to this problem or a suggested work around?
>
> Many Thanks.
>
> -greg
>
>
>
>
>
--
View this message in context: http://old.nabble.com/TransactionManager-resource---no-provider-error-tp26288929p26289083.html
Sent from the OpenEJB User mailing list archive at Nabble.com.