users@glassfish.java.net

None-JMS MessageDrivenBean (EJB 3.0)

From: <glassfish_at_javadesktop.org>
Date: Thu, 15 Apr 2010 07:12:10 PDT

Hi all,

I have an inbound JCA connector which simply passes a socket on each new TCP connection over a SocketMessage interface. So it's basically a point-to-point message where a new instance started for every connection in it's own thread.

The MDB which listens to JCA socket messages is originally EJB2.1 and it works just fine. But I am trying to migrate this MDB to EJB3.0 to support dependency injection, the first problem I've encountered when I replace ejb2.1 xml scheme to ejb3.0 in ejb-jar.xml, glassfish complains and throws exception:

MDB00017: [SimpleSocketBean]: Exception in creating message-driven bean container: [com.sun.enterprise.connectors.ConnectorRuntimeException: JMS resource not created : ]
com.sun.enterprise.connectors.ConnectorRuntimeException
com.sun.enterprise.connectors.ConnectorRuntimeException: JMS resource not created :
        at com.sun.enterprise.connectors.system.ActiveJmsResourceAdapter.getPhysicalDestinationFromConfiguration(ActiveJmsResourceAdapter.java:1595)
        at com.sun.enterprise.connectors.system.ActiveJmsResourceAdapter.updateMDBRuntimeInfo(ActiveJmsResourceAdapter.java:1421)
        at com.sun.enterprise.connectors.inflow.ConnectorMessageBeanClient.setup(ConnectorMessageBeanClient.java:170)
        at com.sun.ejb.containers.MessageBeanContainer.<init>(MessageBeanContainer.java:209)
        at com.sun.ejb.containers.ContainerFactoryImpl.createContainer(ContainerFactoryImpl.java:524)
        at com.sun.enterprise.server.AbstractLoader.loadEjbs(AbstractLoader.java:529)
        at com.sun.enterprise.server.EJBModuleLoader.doLoad(EJBModuleLoader.java:171)
        at com.sun.enterprise.server.AbstractLoader.load(AbstractLoader.java:240)
        at com.sun.enterprise.server.AbstractManager.load(AbstractManager.java:226)
        at com.sun.enterprise.server.ApplicationLifecycle.onStartup(ApplicationLifecycle.java:218)
        at com.sun.enterprise.server.ApplicationServer.onStartup(ApplicationServer.java:449)
        at com.sun.enterprise.server.ondemand.OnDemandServer.onStartup(OnDemandServer.java:134)
        at com.sun.enterprise.server.PEMain.run(PEMain.java:409)
        at com.sun.enterprise.server.PEMain.main(PEMain.java:336)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)

Looks like on the connector activation, glassfish tries to get physical destination and seem to expect JMS destination. How can I configure ejb-jar.xml to use my SocketMessage interface in EJB 3.0?

Thanks in advance,
Mohamed
[Message sent by forum member 'mohamedelshami']

http://forums.java.net/jive/thread.jspa?messageID=397152