Hi all,
I am trying to migrate an application using a resource adapter in a .rar
file from Glassfish to TomEE. The resource adapter needs to be deployed
globally (so multiple application can access it) and make the
javax.resource.cci.ConnectionFactory implementation available via JNDI.
I believe I have deployed the resource adapter to TomEE by adding the
line <Deployments dir="apps" /> in the tomee.xml file. I see the
following lines in the logs afterwards, so I am assuming the .rar is
detected and made available.
INFO: Configuring enterprise application:
/opt/apps/tomee-plume-1.7.1/apps/jrac-tweb.rar
Jul 17, 2015 1:18:08 PM
org.apache.openejb.config.OutputGeneratedDescriptors writeRaXml
INFO: Dumping Generated ra.xml to:
/opt/apps/tomee-plume-1.7.1/temp/ra-6993024062304172339Connector_ID.xml
Jul 17, 2015 1:18:08 PM org.apache.openejb.config.ConfigurationFactory
configureService
INFO: Configuring Service(id=ra-jrac, type=Resource, provider-id=ra-jrac)
Jul 17, 2015 1:18:08 PM org.apache.openejb.config.ConfigurationFactory
configureService
INFO: Configuring Service(id=Connector_ID, type=Resource,
provider-id=Connector_ID)
Jul 17, 2015 1:18:08 PM org.apache.openejb.config.AppInfoBuilder build
INFO: Enterprise application
"/opt/apps/tomee-plume-1.7.1/apps/jrac-tweb.rar" loaded.
However, I cannot figure out how to configure properties on the resource
adapter. I need to specify some configuration properties (username,
password, etc). In Glassfish, I have the connector-connection-pool and
connector-resource elements in the domain.xml where I can configure this
information and set up a JNDI name for the connector.
I tried to add a <Resource> block to the tomee.xml file, but it fails
with the following message:
SEVERE: Failed Configuring Service(id=ra-jrac)
org.apache.openejb.config.NoSuchProviderException: Cannot determine a
provider for Resource(id=ra-jrac,
type=javax.resource.cci.ConnectionFactory, provider=null).
Possible valid configurations might be:
<Resource id="ra-jrac" type="DataSource"/>
<Resource id="ra-jrac" type="javax.sql.DataSource"/>
<Resource id="ra-jrac" type="ActiveMQResourceAdapter"/>
<Resource id="ra-jrac" type="javax.jms.QueueConnectionFactory"/>
<Resource id="ra-jrac" type="TopicConnectionFactory"/>
<Resource id="ra-jrac" type="javax.jms.ConnectionFactory"/>
<Resource id="ra-jrac" type="javax.jms.TopicConnectionFactory"/>
<Resource id="ra-jrac" type="QueueConnectionFactory"/>
<Resource id="ra-jrac" type="javax.jms.Destination"/>
<Resource id="ra-jrac" type="javax.jms.Queue"/>
<Resource id="ra-jrac" type="Queue"/>
<Resource id="ra-jrac" type="javax.jms.Topic"/>
<Resource id="ra-jrac" type="Topic"/>
<Resource id="ra-jrac" type="ORB"/>
<Resource id="ra-jrac" type="org.omg.CORBA.ORB"/>
<Resource id="ra-jrac" type="javax.mail.Session"/>
<Resource id="ra-jrac"
type="javax.enterprise.concurrent.ManagedExecutorService"/>
<Resource id="ra-jrac" type="ManagedExecutorService"/>
<Resource id="ra-jrac" type="ManagedScheduledExecutorService"/>
<Resource id="ra-jrac"
type="javax.enterprise.concurrent.ManagedScheduledExecutorService"/>
<Resource id="ra-jrac"
type="javax.enterprise.concurrent.ManagedThreadFactory"/>
<Resource id="ra-jrac" type="ManagedThreadFactory"/>
<Resource id="ra-jrac" type="ContextService"/>
<Resource id="ra-jrac"
type="javax.enterprise.concurrent.ContextService"/>
at
org.apache.openejb.config.ConfigurationFactory.configureService(ConfigurationFactory.java:1092)
at
org.apache.openejb.config.ConfigurationFactory.getOpenEjbConfiguration(ConfigurationFactory.java:484)
...
I have also tried setting up a <Resource> in the context.xml file in the
same way that I have database connections configured, hoping that would
let me access the ConnectionFactory via JNDI, but my application fails
to find the JNDI name.
<Resource id="ra-jrac"
name="foo/bar/baz"
auth="Container"
type="javax.resource.cci.ConnectionFactory"
username="USERNAME"
password="PASSWORD" />
I am using TomEE-plume 1.7.1. It would be greatly appreciated if anyone
can point me in the correct direction to get this configured.
Thanks,
Mike