Hi 1- To update resource adaptor ManagedConnectionFactory properties:
- Open conf/system.properties file in TomEE, and add each managedconnectionfactory property in this file as: - RA_NAME.PROPERTY_NAME=PROPERTY_VALUE 2- To get the javax.resource.cci.ConnectionFactory instance, write the following code : Context initialContext = new InitialContext(); Context envContext = (Context) initialContext.lookup("openejb:Resource"); Object connectionFactory = envContext.lookup(“YOUR RA NAME”); javax.resource.cci.ConnectionFactory connectionFactory = (javax.resource.cci.ConnectionFactory) connectionFactory; Best Uday Gire ManageCat Support uday.g...@managecat.com > On 21 Jul 2015, at 00:37, Mike Spencer <mspen...@denniskirk.com> wrote: > > Using class-name with the implementation worked, but it turns out that isn't > what I needed. I am going to take a step back and try to describe what I am > trying to do. > > I have a resource adapter packaged in a .rar file that includes the JCA > implementation .jar and a ra.xml in the META-INF folder. It appears to be > deploying to TomEE successfully. It makes two Resources available - one for > the <connector id="Connector_ID"> root element and one for the > <resourceadapter> using the <resourceadapter id="ra-id"> tag. These resources > are currently *not* defined in the tomee.xml file. > > I need to configure two additional properties outside of the ra.xml as they > are specific to the server that the resource adapter is deployed to. In > Glassfish they are defined as properties on the <connector-connection-pool> > tag. JBoss defines them in a ra-name-ds.xml file. These properties are > configuring a javax.resource.spi.ManagedConnectionFactory implementation. > > In addition, I need to make the javax.resource.cci.ConnectionFactory > implementation class defined in the ra.xml available via a JNDI name. > Glassfish defines this a a <connector-resource> element that references the > <connector-connection-pool> element above. JBoss defines this information in > the ra-name-ds.xml file. > > In my previous attempt, I configured the additional properties using a > <Resource class-name="ManagedConnectionFactory impl"> and made that available > via JNDI. It turned out that I did not need that implementation but instead I > need the javax.resource.cci.ConnectionFactory. > > Thanks, > Mike Spencer > > On 07/17/2015 04:00 PM, Romain Manni-Bucau wrote: >> 2015-07-17 12:48 GMT-07:00 Mike Spencer <mspen...@denniskirk.com>: >> >>> Hi Romain, >>> >>> Using class-name allowed it to get past the 'Cannot determine a provider' >>> message, but now I am encountering a new error. >>> >>> This error occurs when using <Resource id="ra-jrac" >>> class-name"javax.resource.cci.ConnectionFactory"></Resource> in tomee.xml: >>> >>> >> class-name should use the actual implementation - it means you instantiate >> yourself the class by this definition, also means the jar in the rar needs >> to be added in tomee/lib >> >> >>> SEVERE: FATAL ERROR: Unknown error in Assembler. Please send the >>> following stack trace and this message to us...@openejb.apache.org : >>> org.apache.xbean.recipe.ConstructionException: Class is an interface: >>> javax.resource.cci.ConnectionFactory >>> >>> When I try to use the concrete implementation >>> (class-name="com.unisys.coms.connector.COMSManagedConnectionFactory") I get >>> the following error: >>> >>> SEVERE: FATAL ERROR: Unknown error in Assembler. Please send the >>> following stack trace and this message to us...@openejb.apache.org : >>> org.apache.xbean.recipe.ConstructionException: Type class could not be >>> found: com.unisys.coms.connector.COMSConnectionFactory >>> >>> The resource adapter I am deploying contains that class. The log says that >>> the .rar is loaded before this error occurs. What could be the reason that >>> the Resource definition can't find the class? >>> >>> Thanks, >>> Mike >>> >>> >>> On 07/17/2015 02:04 PM, Romain Manni-Bucau wrote: >>> >>>> Hi >>>> >>>> Using class-name in Resource declaration should make it. >>>> >>>> That said <ra name as logged>.<property> =<value> in >>>> conf/system.properties >>>> should work IIRC. >>>> Le 17 juil. 2015 20:32, "Mike Spencer" <mspen...@denniskirk.com> a >>>> écrit : >>>> >>>> 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 >>>>> >>>>> >