On Nov 3, 2009, at 6:49 AM, thabach wrote:


I succeeded in looking up the ManagedConnectionFactory under
"java:openejb/Resource/classes". Apologies for bothering you while having
lengthy posts in talking to myself over the mailing list :thinking: !

That's quite alright. Thinking out loud is "documenting out loud" and all sorts of good things can come from that.

On the question of why your connector shows up as "classes", it's because we use the jar or directory name to come up with the module name and we use the module name as the name of the connector. You can set the name of the connector in the ra.xml like so:

  <connector id="FooConnector">
    ...
  </connector>

Not all vendors will use that id, but we do. In Java EE 6 all descriptors will have a "<module-name>" element where the name can be standardly set, which will be very nice.

Did you figure out how to get references to your objects from JNDI? From inside an EJB or Servlet you can use @Resource to get it bound into java:comp/env and made available for lookup or injection.

Hope that helps!  Keep sending the emails :)

-David


thabach wrote:

Heya

I think I got a bit further, but still am confused.

OpenEJB in its Assembler::createResource() method does create both an
instance of my  ResourceAdapter and an instance of my
ManagedConnectionFactory. Both instances are bound to JNDI through (also
from Assembler::createResource()):

containerSystem.getJNDIContext().bind("openejb/Resource/" +
serviceInfo.id, service);

Strange enough the serviceInfo.id is 'classesRA' for the ResourceAdapter and 'classes' for the ManagedConnectionFactory, respectively (see log, below). Is this normal or am I missing something in my implementation ?

Further, when I try to lookup either "openejb/Resource/classesRA" or
"openejb/Resource/classes", I get an NameNotFoundException. How can I get
a reference to the ManagedConnectionFactory object through the
initialContext ?
        
Any help is very much appreciated, Christian.

(== log on staring up my outbound ResourceAdapter with OpenEJB ==)

Apache OpenEJB 3.1.2    build: 20091010-03:11
http://openejb.apache.org/
INFO - openejb.home = C:\Develop\_jee_local\_jee_ws\loopback-adapter
INFO - openejb.base = C:\Develop\_jee_local\_jee_ws\loopback-adapter
INFO - Configuring Service(id=Default Security Service,
type=SecurityService, provider-id=Default Security Service)
INFO - Configuring Service(id=Default Transaction Manager,
type=TransactionManager, provider-id=Default Transaction Manager)
INFO - Using
'openejb.deployments.classpath.include=.*target/classes.*|.*target/ test-classes.*'
INFO - Found ConnectorModule in classpath:
C:\Develop\_jee_local\_jee_ws\loopback-adapter\target\classes
INFO - Beginning load:
C:\Develop\_jee_local\_jee_ws\loopback-adapter\target\classes
INFO - Configuring enterprise application: classpath.ear
INFO - Configuring Service(id=classesRA, type=Resource,
provider-id=classesRA)
INFO - Configuring Service(id=classes, type=Resource, provider- id=classes)
INFO - Enterprise application "classpath.ear" loaded.
INFO - Creating TransactionManager(id=Default Transaction Manager)
DEBUG - defaultTransactionTimeoutSeconds=600
DEBUG - TxRecovery=false
DEBUG - bufferSizeKb=32
DEBUG - checksumEnabled=true
DEBUG - adler32Checksum=true
DEBUG - flushSleepTimeMilliseconds=50
DEBUG - logFileDir=txlog
DEBUG - logFileExt=log
DEBUG - logFileName=howl
DEBUG - maxBlocksPerFile=-1
DEBUG - maxBuffers=0
DEBUG - maxLogFiles=2
DEBUG - minBuffers=4
DEBUG - threadsWaitingForceThreshold=-1
DEBUG - createService.success
INFO - Creating SecurityService(id=Default Security Service)
DEBUG - createService.success
INFO - Assembling app: classpath.ear
INFO - Creating Resource(id=classesRA)
DEBUG - createService.success
INFO - Creating Resource(id=classes)
DEBUG - TransactionSupport=none
DEBUG - ResourceAdapter=classesRA
INFO - Creating ConnectionManager for Resource(id=classes)
DEBUG - createService.success
INFO - Deployed Application(path=classpath.ear)


thabach wrote:

Heya

I am implementing an outbound-resourceadapter. The RAR seems to deploy fine, but the ManagedConnectionFactory's createConnectionFactory method
is never triggered by the container.

As I learned every application server has some complement to the ra.xml.
In JBoss for example there are the *-ds.xml files as mentioned in an
http://old.nabble.com/Re%3A-Unit-testing-code-containing-DirContext-resource-injection-p24836874.html
earlier post . In such *-ds.xml files, for example the JNDI name of the
instantiated ConnectionFactory object is given.

Instantiation of the ConnectionFactory object (the call to the
ManagedConnectionFactory's createConnectionFactory method) and binding to
JNDI registry is triggered by JBoss at *-ds.xml file processing.

I want to accomplish the same with OpenEJB. I found an ra.xml
complementing http://cwiki.apache.org/GMOxDOC22/geronimo- raxml.html file for Geronimo, but see no JNDI name declaration in there and don't know
how to apply it for OpenEJB.

How does one configure matter for OpenEJB ? How to trigger the creation of a ManagedConnectionFactory, the instantiation of the ConnectionFactory
object and the binding of the latter to JNDI ?

Any help very much appreciated, cheers, Christian.







--
View this message in context: 
http://old.nabble.com/RAR-deployment%2C-ConnectionFactory-Instantiation-and-JNDI.-tp26157843p26160177.html
Sent from the OpenEJB User mailing list archive at Nabble.com.



Reply via email to