Thanks for the clarification.

I now have a plan file, but when I run the deploy I get this message.

C:\geronimo-1.0\bin>deploy deploy todd-plan.xml WorkJ2EE.ear

   Error: Unable to distribute WorkJ2EE.ear: A connector module must be
   deployed using a Geronimo deployment plan (either
   META-INF/geronimo-ra.xml in the RAR file or a standalone deployment
   plan passed to the deployer).

Here is my plan file, is it incomplete in some way? Also, is there somewhere in the Geronimo install where I can find the daytrader EAR? That would be of great help! If I could look at it's layout and see all the required files. I'm thinking my EAR must be missing some critical Geronimo specifics but I'm not sure what.

Todd

<?xml version="1.0" encoding="UTF-8"?>
<application xmlns="http://geronimo.apache.org/xml/ns/j2ee/application"; configId="Workj2ee" >

<module> <ejb>WorkJ2EEEJB.jar</ejb> <openejb-jar xmlns="http://www.openejb.org/xml/ns/openejb-jar";
                    configId="WorkTODDEJBs"
                    >
           <enterprise-beans>
               <message-driven>
                   <ejb-name>MDB1</ejb-name>
                   <resource-adapter>
                       <resource-link>SGJMS</resource-link>
                   </resource-adapter>
                   <activation-config>
                       <activation-config-property>
<activation-config-property-name>destinationType</activation-config-property-name> <activation-config-property-value>javax.jms.Queue</activation-config-property-value>
                       </activation-config-property>
                       <activation-config-property>
<activation-config-property-name>destination</activation-config-property-name> <activation-config-property-value>SGQueue1</activation-config-property-value>
                       </activation-config-property>
                       <activation-config-property>
<activation-config-property-name>acknowledgeMode</activation-config-property-name> <activation-config-property-value>Auto-acknowledge</activation-config-property-value>
                       </activation-config-property>
                       <activation-config-property>
<activation-config-property-name>SubscriptionDurability</activation-config-property-name> <activation-config-property-value>NonDurable</activation-config-property-value>
                       </activation-config-property>
                   </activation-config>
               </message-driven>
           </enterprise-beans>
</openejb-jar>
</module>

   <ext-module>
       <connector>SGJMS</connector>
       <external-path>activemq/activemq-ra/3.2.1/rar</external-path>
       <connector
           xmlns="http://geronimo.apache.org/xml/ns/j2ee/connector-1.0";
           xmlns:naming="http://geronimo.apache.org/xml/ns/naming-1.0";
           configId="SGJMS">

           <resourceadapter>
               <!-- how to connect to the JMS Server -->
               <resourceadapter-instance>
                   <resourceadapter-name>SGJMS</resourceadapter-name>
<config-property-setting name="ServerUrl">tcp://localhost:61616</config-property-setting> <config-property-setting name="UserName">not needed</config-property-setting> <config-property-setting name="Password">not needed</config-property-setting>
                   <workmanager>
                       <gbean-link>DefaultWorkManager</gbean-link>
                   </workmanager>
               </resourceadapter-instance>
               <!-- defines a ConnectionFactory -->
               <outbound-resourceadapter>
                 <connection-definition>
<connectionfactory-interface>javax.jms.ConnectionFactory</connectionfactory-interface>
                       <connectiondefinition-instance>
                           <name>jms/SGQueueConnectionFactory</name>
<implemented-interface>javax.jms.QueueConnectionFactory</implemented-interface>
                           <connectionmanager>
                               <xa-transaction>
                                   <transaction-caching/>
                               </xa-transaction>
                               <single-pool>
                                   <max-size>10</max-size>
                                   <min-size>0</min-size>
<blocking-timeout-milliseconds>5000</blocking-timeout-milliseconds> <idle-timeout-minutes>0</idle-timeout-minutes>
                                   <match-one/>
                               </single-pool>
                           </connectionmanager>
                       </connectiondefinition-instance>
                   </connection-definition>
                   <connection-definition>
<connectionfactory-interface>javax.jms.ConnectionFactory</connectionfactory-interface>
                       <connectiondefinition-instance>
                           <name>jms/SGTopicConnectionFactory</name>
<implemented-interface>javax.jms.TopicConnectionFactory</implemented-interface>
                           <connectionmanager>
                               <xa-transaction>
                                   <transaction-caching/>
                               </xa-transaction>
                               <single-pool>
                                   <max-size>10</max-size>
                                   <min-size>0</min-size>
<blocking-timeout-milliseconds>5000</blocking-timeout-milliseconds> <idle-timeout-minutes>0</idle-timeout-minutes>
                                   <match-one/>
                               </single-pool>
                           </connectionmanager>
                       </connectiondefinition-instance>
</connection-definition> </outbound-resourceadapter>
           </resourceadapter>

           <adminobject>
<adminobject-interface>javax.jms.Topic</adminobject-interface> <adminobject-class>org.codehaus.activemq.message.ActiveMQTopic</adminobject-class>
               <adminobject-instance>
<message-destination-name>SGTopic1</message-destination-name> <config-property-setting name="PhysicalName">SGTopic1</config-property-setting>
               </adminobject-instance>
           </adminobject>

           <adminobject>
<adminobject-interface>javax.jms.Queue</adminobject-interface> <adminobject-class>org.codehaus.activemq.message.ActiveMQQueue</adminobject-class>
               <adminobject-instance>
<message-destination-name>SGQueue1</message-destination-name> <config-property-setting name="PhysicalName">SGQueue1</config-property-setting>
               </adminobject-instance>
           </adminobject>

       </connector>
   </ext-module>
</application>

My application.xml file contents.

<?xml version="1.0" encoding="UTF-8"?>
<application xmlns="http://java.sun.com/xml/ns/j2ee";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/application_1_4.xsd";
version="1.4">

 <display-name>WorkJ2EE</display-name>
 <module>
   <web>
     <web-uri>WorkJ2EEWeb.war</web-uri>
     <context-root>/WorkJ2EEWeb</context-root>
   </web>
 </module>
 <module>
   <ejb>WorkJ2EEEJB.jar</ejb>
 </module>
 <module>
<connector>activemq-ra-3.2.1.rar</connector>
</module>
</application>


Krishnakumar B wrote:
hi Todd,

U can create a EAR plan and put all the Geronimo configurations in it.
( Refer to Daytrader plan )

<application>
  <module>
     WEB
   </module>
   <module>
    EJB
    </module>
   <ext-module>RA</ext-module>
</application>

This contains all web, ejb configurations instead of putting them in
openejb-jar.xml and geronimo-web.xml.

U can deploy the ear using deploy tool along with the above plan.

<geronimo-home>/bin/deploy deploy yourappplan.xml yourapp.ear

Hope this helps.

Regards
Krish

On 2/21/06, Todd Mason <[EMAIL PROTECTED]> wrote:
Thanks for the clarification. I'm changing too many things at once and
getting myself confused. :~)

Where do I put my "Plan" file if I opt not to use a "openejb-jar.xml" to
describe my Geronimo specific settings for my message bean? And if I
have a "plan" file that describes my ejb and its resources such as
follows how do I deploy it?

Thanks for your patience.

Todd

My plan file.

<?xml version="1.0" encoding="UTF-8"?>
<application xmlns="http://geronimo.apache.org/xml/ns/j2ee/application-1.0";
   configId="silverglobe/ejb/WorkJ2EE/car">

   <!--
   ##
   ##  EJB module
   ##  Module Definition
   ##
   ##
   -->
   <module>
       <ejb>WorkJ2EEEJB.jar</ejb>
       <openejb-jar xmlns="http://www.openejb.org/xml/ns/openejb-jar-2.0";
                    configId="WorkTODDEJBs"
                    >
           <enterprise-beans>
               <message-driven>
                   <ejb-name>MDB1</ejb-name>
                   <resource-adapter>
                       <resource-link>SGJMS</resource-link>
                   </resource-adapter>
                   <activation-config>
                       <activation-config-property>

<activation-config-property-name>destinationType</activation-config-property-name>

<activation-config-property-value>javax.jms.Queue</activation-config-property-value>
                       </activation-config-property>
                       <activation-config-property>

<activation-config-property-name>destination</activation-config-property-name>

<activation-config-property-value>SGQueue1</activation-config-property-value>
                       </activation-config-property>
                       <activation-config-property>

<activation-config-property-name>acknowledgeMode</activation-config-property-name>

<activation-config-property-value>Auto-acknowledge</activation-config-property-value>
                       </activation-config-property>
                       <activation-config-property>

<activation-config-property-name>SubscriptionDurability</activation-config-property-name>

<activation-config-property-value>NonDurable</activation-config-property-value>
                       </activation-config-property>
                   </activation-config>
               </message-driven>
           </enterprise-beans>
</openejb-jar>
</module>

   <ext-module>
       <connector>SGJMS</connector>
       <external-path>activemq/activemq-ra/3.2.1/rar</external-path>
       <connector
           xmlns="http://geronimo.apache.org/xml/ns/j2ee/connector-1.0";
           xmlns:naming="http://geronimo.apache.org/xml/ns/naming-1.0";
           configId="SGJMS">

           <resourceadapter>
               <!-- how to connect to the JMS Server -->
               <resourceadapter-instance>
                   <resourceadapter-name>SGJMS</resourceadapter-name>
                   <config-property-setting
name="ServerUrl">tcp://localhost:61616</config-property-setting>
                   <config-property-setting name="UserName">not
needed</config-property-setting>
                   <config-property-setting name="Password">not
needed</config-property-setting>
                   <workmanager>
                       <gbean-link>DefaultWorkManager</gbean-link>
                   </workmanager>
               </resourceadapter-instance>
               <!-- defines a ConnectionFactory -->
               <outbound-resourceadapter>
                 <connection-definition>

<connectionfactory-interface>javax.jms.ConnectionFactory</connectionfactory-interface>
                       <connectiondefinition-instance>
                           <name>jms/SGQueueConnectionFactory</name>

<implemented-interface>javax.jms.QueueConnectionFactory</implemented-interface>
                           <connectionmanager>
                               <xa-transaction>
                                   <transaction-caching/>
                               </xa-transaction>
                               <single-pool>
                                   <max-size>10</max-size>
                                   <min-size>0</min-size>

<blocking-timeout-milliseconds>5000</blocking-timeout-milliseconds>

<idle-timeout-minutes>0</idle-timeout-minutes>
                                   <match-one/>
                               </single-pool>
                           </connectionmanager>
                       </connectiondefinition-instance>
                   </connection-definition>
                   <connection-definition>

<connectionfactory-interface>javax.jms.ConnectionFactory</connectionfactory-interface>
                       <connectiondefinition-instance>
                           <name>jms/SGTopicConnectionFactory</name>

<implemented-interface>javax.jms.TopicConnectionFactory</implemented-interface>
                           <connectionmanager>
                               <xa-transaction>
                                   <transaction-caching/>
                               </xa-transaction>
                               <single-pool>
                                   <max-size>10</max-size>
                                   <min-size>0</min-size>

<blocking-timeout-milliseconds>5000</blocking-timeout-milliseconds>

<idle-timeout-minutes>0</idle-timeout-minutes>
                                   <match-one/>
                               </single-pool>
                           </connectionmanager>
                       </connectiondefinition-instance>
                   </connection-definition>
               </outbound-resourceadapter>
           </resourceadapter>

           <adminobject>

<adminobject-interface>javax.jms.Topic</adminobject-interface>

<adminobject-class>org.codehaus.activemq.message.ActiveMQTopic</adminobject-class>
               <adminobject-instance>

<message-destination-name>SGTopic1</message-destination-name>
                   <config-property-setting
name="PhysicalName">SGTopic1</config-property-setting>
               </adminobject-instance>
           </adminobject>

           <adminobject>

<adminobject-interface>javax.jms.Queue</adminobject-interface>

<adminobject-class>org.codehaus.activemq.message.ActiveMQQueue</adminobject-class>
               <adminobject-instance>

<message-destination-name>SGQueue1</message-destination-name>
                   <config-property-setting
name="PhysicalName">SGQueue1</config-property-setting>
               </adminobject-instance>
           </adminobject>

       </connector>
   </ext-module>

</application>

Aaron Mulder wrote:
For this module:

<module>
<connector>activemq-ra-3.2.1.rar</connector>
<alt-dd>jms-resource-plan.xml</alt-dd>
</module>

Your Geronimo plan (jms-resource-plan.xml) is this:

<?xml version="1.0" encoding="UTF-8"?>
<application xmlns="http://geronimo.apache.org/xml/ns/j2ee/application-1.0";
   configId="silverglobe/ejb/WorkJ2EE/car">
  ...

But that's not correct -- <application> is for an EAR, and
activemq-ra-3.2.1.rar is a RAR.  Your original message had:

My jms-resource-plan.xml file

<connector
   xmlns="http://geronimo.apache.org/xml/ns/j2ee/connector-1.0";
   xmlns:naming="http://geronimo.apache.org/xml/ns/naming";
   configId="com/silverglobe/SGJMSResources"
   parentId="geronimo/activemq-broker/1.0/car"
   >

Which is the correct type of plan for a RAR.  I'm not sure how things
got confused between your first message and the most recent one.

Thanks,
    Aaron

On 2/20/06, Todd Mason <[EMAIL PROTECTED]> wrote:

Aaron,

I'm afraid I didn't follow you, are one of my files supposed to be a rar?

Todd

Aaron Mulder wrote:

Your "JMS resource plan" is an EAR plan not a RAR plan -- if that's
not a typo then it's probably the problem.

Aaron

On 2/20/06, Todd Mason <[EMAIL PROTECTED]> wrote:


David Jencks wrote:


I don't see anything wrong with your plans.  For an example you could
look at the daytrader plans in configs/daytrader-*/src/plan/plan.xml
which contain some mdbs and they seem to work fine.  I think your jms
stuff is deployed fine, and you are seeing a classloading problem when
the mdb tries to start.  However I don't see the cause yet.  You could
try imitating the setup of daytrader, where the jms is deployed as an
"external module" in the same configuration as the ear.  Similarly you
could construct a "synthetic ear" with both your ejbs and the jms
stuff as external modules.  If this worked it might indicate a problem
with our classloading.  However I think there are other examples of
mdbs working with the jms deployed separately.

thanks
david jencks

On Feb 17, 2006, at 6:09 PM, Todd Mason wrote:



Hello all,

I'm getting a java.lang.ClassNotFoundException:
org.activemq.ra.ActiveMQActivationSpec exception when I deploy my
message driven bean. I'm using Geronimo 1.0 on XP. As near as I can
tell my JMS resource plan deployed properly, from the console I can
see the resources deployed JMS Factory and Queue, the "test
connection" link also appears to work fine. Is there anything else I
need to do to verify my JMS resources are deployed properly? Does
anyone have a sample openejb-jar.xml file containing a message bean?
Following is my stack trace from my geronimo.log file.

Thanks in advance.

Todd


19:52:59,281 DEBUG [GBeanSingleReference] Waiting to start
geronimo.server:J2EEApplication=WorkJ2EE,J2EEServer=geronimo,j2eeType=WebModule,name=WorkJ2EEWeb.war
because no targets are running for reference J2EEApplication matching
the patterns
geronimo.server:J2EEServer=geronimo,j2eeType=J2EEApplication,name=WorkJ2EE

19:52:59,296 ERROR [GBeanInstanceState] Error while starting; GBean
is now in the FAILED state:
objectName="geronimo.server:EJBModule=WorkJ2EEEJB.jar,J2EEApplication=WorkJ2EE,J2EEServer=geronimo,j2eeType=JCAActivationSpec,name=MDB1"

java.lang.ClassNotFoundException: org.activemq.ra.ActiveMQActivationSpec
   at java.net.URLClassLoader$1.run(URLClassLoader.java:199)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
   at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
   at
org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClass(MultiParentClassLoader.java:209)

   at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
   at
org.apache.geronimo.connector.ActivationSpecWrapper.<init>(ActivationSpecWrapper.java:65)

   at
org.apache.geronimo.connector.ActivationSpecWrapperGBean.<init>(ActivationSpecWrapperGBean.java:42)

   at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method)
   at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)

   at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)

   at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
   at
org.apache.geronimo.gbean.runtime.GBeanInstance.createInstance(GBeanInstance.java:901)

   at
org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:325)

   at
org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:110)

   at
org.apache.geronimo.gbean.runtime.GBeanInstanceState.startRecursive(GBeanInstanceState.java:132)

   at
org.apache.geronimo.gbean.runtime.GBeanInstance.startRecursive(GBeanInstance.java:537)

   at
org.apache.geronimo.kernel.basic.BasicKernel.startRecursiveGBean(BasicKernel.java:208)

   at
org.apache.geronimo.kernel.config.Configuration.startRecursiveGBeans(Configuration.java:315)

   at
org.apache.geronimo.kernel.config.Configuration$$FastClassByCGLIB$$7f4b4a9b.invoke(<generated>)

   at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
   at
org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38)

   at
org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:118)

   at
org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:835)

   at
org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:178)

   at
org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:173)

   at
org.apache.geronimo.kernel.config.ConfigurationManagerImpl.start(ConfigurationManagerImpl.java:142)

   at
org.apache.geronimo.kernel.config.ConfigurationManagerImpl$$FastClassByCGLIB$$fbed85d2.invoke(<generated>)

   at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
   at
org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38)

   at
org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:118)

   at
org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:800)

   at
org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57)
   at
org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:36)

   at
org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java:96)

   at
org.apache.geronimo.kernel.config.ConfigurationManager$$EnhancerByCGLIB$$aafd0674.start(<generated>)

   at
org.apache.geronimo.console.configmanager.DeploymentPortlet.processAction(DeploymentPortlet.java:126)

   at
org.apache.pluto.core.PortletServlet.dispatch(PortletServlet.java:229)
   at
org.apache.pluto.core.PortletServlet.doPost(PortletServlet.java:163)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:615)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
   at
org.apache.pluto.core.PortletServlet.service(PortletServlet.java:153)
   at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)

   at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)

   at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)

   at
org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:574)

   at
org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499)

   at
org.apache.pluto.invoker.impl.PortletInvokerImpl.invoke(PortletInvokerImpl.java:120)

   at
org.apache.pluto.invoker.impl.PortletInvokerImpl.action(PortletInvokerImpl.java:68)

   at
org.apache.pluto.PortletContainerImpl.processPortletAction(PortletContainerImpl.java:164)

   at
org.apache.pluto.portalImpl.core.PortletContainerWrapperImpl.processPortletAction(PortletContainerWrapperImpl.java:82)

   at org.apache.pluto.portalImpl.Servlet.doGet(Servlet.java:227)
   at org.apache.pluto.portalImpl.Servlet.doPost(Servlet.java:267)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:615)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
   at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)

   at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)

   at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)

   at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)

   at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)

   at
org.apache.geronimo.tomcat.GeronimoStandardContext$SystemMethodValve.invoke(GeronimoStandardContext.java:272)

   at
org.apache.geronimo.tomcat.valve.DefaultSubjectValve.invoke(DefaultSubjectValve.java:46)

   at
org.apache.geronimo.tomcat.valve.PolicyContextValve.invoke(PolicyContextValve.java:50)

   at
org.apache.geronimo.tomcat.valve.TransactionContextValve.invoke(TransactionContextValve.java:53)

   at
org.apache.geronimo.tomcat.valve.ComponentContextValve.invoke(ComponentContextValve.java:47)

   at
org.apache.geronimo.tomcat.valve.InstanceContextValve.invoke(InstanceContextValve.java:60)

   at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)

   at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)

   at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)

   at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:526)

   at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)

   at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)

   at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)

   at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)

   at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)

   at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)

   at java.lang.Thread.run(Thread.java:534)
19:52:59,296 DEBUG [GBeanSingleReference] Waiting to start
geronimo.server:J2EEApplication=WorkJ2EE,J2EEServer=geronimo,j2eeType=EJBModule,name=WorkJ2EEEJB.jar
because no targets are running for reference J2EEApplication matching
the patterns
geronimo.server:J2EEServer=geronimo,j2eeType=J2EEApplication,name=WorkJ2EE

19:52:59,421 DEBUG [GBeanSingleReference] Waiting to start
geronimo.server:EJBModule=WorkJ2EEEJB.jar,J2EEApplication=WorkJ2EE,J2EEServer=geronimo,j2eeType=MessageDrivenBean,name=MDB1
because no targets are running for reference ActivationSpecWrapper
matching the patterns
geronimo.server:EJBModule=WorkJ2EEEJB.jar,J2EEApplication=WorkJ2EE,J2EEServer=geronimo,j2eeType=JCAActivationSpec,name=MDB1


My openejb-jar.xml file

<openejb-jar
   xmlns="http://www.openejb.org/xml/ns/openejb-jar";
   xmlns:naming="http://geronimo.apache.org/xml/ns/naming";
   xmlns:security="http://geronimo.apache.org/xml/ns/security";
   xmlns:sys="http://geronimo.apache.org/xml/ns/deployment";
   configId="WORKJ2EE" parentId="com/silverglobe/SGJMSResources">
<enterprise-beans>
    <message-driven>
       <ejb-name>MDB1</ejb-name>
          <resource-adapter>

<target-name>geronimo.server:J2EEApplication=null,J2EEServer=geronimo,JCAResource=com/silverglobe/SGJMSResources,j2eeType=JCAManagedConnectionFactory,name=jms/SGQueueConnectionFactory</target-name>

        </resource-adapter>              <activation-config>
           <activation-config-property>

<activation-config-property-name>destination</activation-config-property-name>


<activation-config-property-value>SGQueue1</activation-config-property-value>
</activation-config-property>
           <activation-config-property>

<activation-config-property-name>destinationType</activation-config-property-name>


<activation-config-property-value>javax.jms.Queue</activation-config-property-value>
</activation-config-property>
       </activation-config>
  </message-driven>
</enterprise-beans>
</openejb-jar>

My jms-resource-plan.xml file

<connector
   xmlns="http://geronimo.apache.org/xml/ns/j2ee/connector-1.0";
   xmlns:naming="http://geronimo.apache.org/xml/ns/naming";
   configId="com/silverglobe/SGJMSResources"
   parentId="geronimo/activemq-broker/1.0/car"
   >

   <resourceadapter>
       <!-- how to connect to the JMS Server -->
       <resourceadapter-instance>
           <resourceadapter-name>SGJMSResources</resourceadapter-name>
           <config-property-setting
name="ServerUrl">tcp://localhost:61616</config-property-setting>
           <config-property-setting name="UserName">not
needed</config-property-setting>
           <config-property-setting name="Password">not
needed</config-property-setting>
           <workmanager>
               <gbean-link>DefaultWorkManager</gbean-link>
           </workmanager>
       </resourceadapter-instance>
       <!-- defines a ConnectionFactory -->
       <outbound-resourceadapter>
           <connection-definition>

<connectionfactory-interface>javax.jms.ConnectionFactory</connectionfactory-interface>

               <connectiondefinition-instance>
                   <name>jms/SGQueueConnectionFactory</name>

<implemented-interface>javax.jms.QueueConnectionFactory</implemented-interface>

                   <connectionmanager>
                       <xa-transaction>
                           <transaction-caching />
                       </xa-transaction>
                       <single-pool>
                           <max-size>10</max-size>
                           <min-size>0</min-size>

<blocking-timeout-milliseconds>5000</blocking-timeout-milliseconds>

<idle-timeout-minutes>0</idle-timeout-minutes>
                           <match-one/>
                       </single-pool>
                   </connectionmanager>
               </connectiondefinition-instance>
           </connection-definition>
           <connection-definition>

<connectionfactory-interface>javax.jms.ConnectionFactory</connectionfactory-interface>

               <connectiondefinition-instance>
                   <name>jms/SGTopicConnectionFactory</name>

<implemented-interface>javax.jms.TopicConnectionFactory</implemented-interface>

                   <connectionmanager>
                       <xa-transaction>
                           <transaction-caching />
                       </xa-transaction>
                       <single-pool>
                           <max-size>10</max-size>
                           <min-size>0</min-size>

<blocking-timeout-milliseconds>5000</blocking-timeout-milliseconds>

<idle-timeout-minutes>0</idle-timeout-minutes>
                           <match-one/>
                       </single-pool>
                   </connectionmanager>
               </connectiondefinition-instance>
           </connection-definition>
       </outbound-resourceadapter>
   </resourceadapter>

   <adminobject>
       <adminobject-interface>javax.jms.Topic</adminobject-interface>

<adminobject-class>org.codehaus.activemq.message.ActiveMQTopic</adminobject-class>

       <adminobject-instance>
           <message-destination-name>SGTopic1</message-destination-name>
           <config-property-setting
name="PhysicalName">SGTopic1</config-property-setting>
       </adminobject-instance>
   </adminobject>

   <adminobject>
       <adminobject-interface>javax.jms.Queue</adminobject-interface>

<adminobject-class>org.codehaus.activemq.message.ActiveMQQueue</adminobject-class>

       <adminobject-instance>
           <message-destination-name>SGQueue1</message-destination-name>
           <config-property-setting
name="PhysicalName">SGQueue1</config-property-setting>
       </adminobject-instance>
   </adminobject>

</connector>



David,

Thanks for the ideas,

What I tried today, without much luck is to deploy as an external module
in the same ear. I'm getting a different error at least!

I get this error on deploy.

 Error: Unable to distribute WorkJ2EE.ear: A connector module must be
    deployed using a Geronimo deployment plan (either
    META-INF/geronimo-ra.xml in the RAR file or a standalone deployment
    plan passed to the deployer).

Any thoughts?

Thanks,

Todd

My ear file looks like this.

META-INF
        application.xml
        geronimo-application.xml
        MANIFEST.MF
activemq-ra-3.2.1.rar
jms-resource-plan.xml
WorkJ2EEEJB.jar
WorkJ2EEWeb.jar

My application.xml contents.

<?xml version="1.0" encoding="UTF-8"?>
<application xmlns="http://java.sun.com/xml/ns/j2ee";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; version="1.4"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/application_1_4.xsd";>
  <display-name>WorkJ2EE</display-name>
  <module id="myeclipse.1140210775968">
    <web>
      <web-uri>WorkJ2EEWeb.war</web-uri>
      <context-root>/WorkJ2EEWeb</context-root>
    </web>
  </module>
  <module id="myeclipse.1140210776515">
    <ejb>WorkJ2EEEJB.jar</ejb>
  </module>
  <module>
<connector>activemq-ra-3.2.1.rar</connector>
</module>
</application>

My geronimo-application.xml contents.

<?xml version="1.0" encoding="UTF-8"?>
<application
xmlns="http://geronimo.apache.org/xml/ns/j2ee/connector-1.0";
configId="MyApplication">
<module>
<connector>activemq-ra-3.2.1.rar</connector>
<alt-dd>jms-resource-plan.xml</alt-dd>
</module>
</application>


My jms-resource-plan.xml file.

<?xml version="1.0" encoding="UTF-8"?>
<application xmlns="http://geronimo.apache.org/xml/ns/j2ee/application-1.0";
    configId="silverglobe/ejb/WorkJ2EE/car">

    <!--
    ##
    ##  EJB module
    ##  Module Definition
    ##
    ##
    -->
    <module>
        <ejb>WorkJ2EEEJB.jar</ejb>
        <openejb-jar xmlns="http://www.openejb.org/xml/ns/openejb-jar-2.0";
                     configId="WorkTODDEJBs"
                     >
            <enterprise-beans>
                <message-driven>
                    <ejb-name>MDB1</ejb-name>
                    <resource-adapter>
                        <resource-link>SGJMS</resource-link>
                    </resource-adapter>
                    <activation-config>
                        <activation-config-property>

<activation-config-property-name>destinationType</activation-config-property-name>

<activation-config-property-value>javax.jms.Queue</activation-config-property-value>
                        </activation-config-property>
                        <activation-config-property>

<activation-config-property-name>destination</activation-config-property-name>

<activation-config-property-value>TradeStreamerQueue</activation-config-property-value>
                        </activation-config-property>
                        <activation-config-property>

<activation-config-property-name>acknowledgeMode</activation-config-property-name>

<activation-config-property-value>Auto-acknowledge</activation-config-property-value>
                        </activation-config-property>
                        <activation-config-property>

<activation-config-property-name>SubscriptionDurability</activation-config-property-name>

<activation-config-property-value>NonDurable</activation-config-property-value>
                        </activation-config-property>
                    </activation-config>
                </message-driven>
            </enterprise-beans>
</openejb-jar>
</module>

    <ext-module>
        <connector>SGJMS</connector>
        <external-path>activemq/activemq-ra/3.2.1/rar</external-path>
        <connector
            xmlns="http://geronimo.apache.org/xml/ns/j2ee/connector-1.0";
            xmlns:naming="http://geronimo.apache.org/xml/ns/naming-1.0";
            configId="SGJMS">

            <resourceadapter>
                <!-- how to connect to the JMS Server -->
                <resourceadapter-instance>

<resourceadapter-name>TradeJMSResources</resourceadapter-name>
                    <config-property-setting
name="ServerUrl">tcp://localhost:61616</config-property-setting>
                    <config-property-setting name="UserName">not
needed</config-property-setting>
                    <config-property-setting name="Password">not
needed</config-property-setting>
                    <workmanager>
                        <gbean-link>DefaultWorkManager</gbean-link>
                    </workmanager>
                </resourceadapter-instance>
                <!-- defines a ConnectionFactory -->
                <outbound-resourceadapter>
                  <connection-definition>

<connectionfactory-interface>javax.jms.ConnectionFactory</connectionfactory-interface>
                        <connectiondefinition-instance>
                            <name>jms/SGQueueConnectionFactory</name>

<implemented-interface>javax.jms.QueueConnectionFactory</implemented-interface>
                            <connectionmanager>
                                <xa-transaction>
                                    <transaction-caching/>
                                </xa-transaction>
                                <single-pool>
                                    <max-size>10</max-size>
                                    <min-size>0</min-size>

<blocking-timeout-milliseconds>5000</blocking-timeout-milliseconds>

<idle-timeout-minutes>0</idle-timeout-minutes>
                                    <match-one/>
                                </single-pool>
                            </connectionmanager>
                        </connectiondefinition-instance>
                    </connection-definition>
                    <connection-definition>

<connectionfactory-interface>javax.jms.ConnectionFactory</connectionfactory-interface>
                        <connectiondefinition-instance>
                            <name>jms/SGTopicConnectionFactory</name>

<implemented-interface>javax.jms.TopicConnectionFactory</implemented-interface>
                            <connectionmanager>
                                <xa-transaction>
                                    <transaction-caching/>
                                </xa-transaction>
                                <single-pool>
                                    <max-size>10</max-size>
                                    <min-size>0</min-size>

<blocking-timeout-milliseconds>5000</blocking-timeout-milliseconds>

<idle-timeout-minutes>0</idle-timeout-minutes>
                                    <match-one/>
                                </single-pool>
                            </connectionmanager>
                        </connectiondefinition-instance>
                    </connection-definition>
                </outbound-resourceadapter>
            </resourceadapter>

            <adminobject>

<adminobject-interface>javax.jms.Topic</adminobject-interface>

<adminobject-class>org.codehaus.activemq.message.ActiveMQTopic</adminobject-class>
                <adminobject-instance>

<message-destination-name>TradeStreamerTopic</message-destination-name>
                    <config-property-setting
name="PhysicalName">TradeStreamerTopic</config-property-setting>
                </adminobject-instance>
            </adminobject>

            <adminobject>

<adminobject-interface>javax.jms.Queue</adminobject-interface>

<adminobject-class>org.codehaus.activemq.message.ActiveMQQueue</adminobject-class>
                <adminobject-instance>

<message-destination-name>TradeBrokerQueue</message-destination-name>
                    <config-property-setting
name="PhysicalName">TradeBrokerQueue</config-property-setting>
                </adminobject-instance>
            </adminobject>

        </connector>
    </ext-module>

</application>







Reply via email to