Also I noticed you are using mappedName which we ignore, try using name instead.

thanks
david jencks

On Jun 13, 2007, at 8:31 PM, David Jencks wrote:

You need to include the resource plan as a parent of your web-app in the geronimo-web environment element. If this doesn't help please show your entire geroniimo-web.xml.

You can eliminate the resource-ref type stuff from your geronimo- web.xml if you make the names exactly the same .... e.g. naming the connection factory "jms/CommonConnectionFactory"

There's some support for automatically mapping "common prefixes" but I don't think I got to jms yet :-)

hope this helps
david jencks

On Jun 13, 2007, at 10:21 AM, Viet Hung Nguyen wrote:

I am trying to get a simple MDB to work using annotations. However, when I deploy it into Geronimo 2.0, I get the following error. This is with the ConnectionFactory and Queue set up in Geronimo already:

Error: Unable to distribute order-ear-2.0-SNAPSHOT.ear: Unable to
resolve resource reference 'jms/CommonConnectionFactory' (Could not
auto-map to resource.  Try adding a resource-ref mapping to your
Geronimo deployment plan.

My deployment plan for the ConnectionFactory and Queues looks like this:

<connector xmlns="http://geronimo.apache.org/xml/ns/j2ee/ connector-1.1"> <dep:environment xmlns:dep="http://geronimo.apache.org/xml/ns/ deployment-1.2">
       <dep:moduleId>
           <dep:groupId>org.apache.geronimo.samples</dep:groupId>
           <dep:artifactId>jms-resources</dep:artifactId>
           <dep:version>1.2</dep:version>
           <dep:type>rar</dep:type>
       </dep:moduleId>
       <dep:dependencies>
           <dep:dependency>
               <dep:groupId>org.apache.geronimo.configs</dep:groupId>
               <dep:artifactId>activemq-broker</dep:artifactId>
               <dep:type>car</dep:type>
           </dep:dependency>
       </dep:dependencies>
   </dep:environment>
   <resourceadapter>
       <resourceadapter-instance>
<resourceadapter-name>CommonConnectionFactory</ resourceadapter-name> <config-property-setting name="Password">geronimo</ config-property-setting> <config-property-setting name="UserName">geronimo</ config-property-setting> <nam:workmanager xmlns:nam="http://geronimo.apache.org/ xml/ns/naming-1.1">
               <nam:gbean-link>DefaultWorkManager</nam:gbean-link>
           </nam:workmanager>
       </resourceadapter-instance>
       <outbound-resourceadapter>
           <connection-definition>
<connectionfactory- interface>javax.jms.QueueConnectionFactory</connectionfactory- interface>
               <connectiondefinition-instance>
                   <name>CommonConnectionFactory</name>
                   <connectionmanager>
                       <xa-transaction>
                           <transaction-caching/>
                       </xa-transaction>
                       <single-pool>
                           <match-one/>
                       </single-pool>
                   </connectionmanager>
               </connectiondefinition-instance>
           </connection-definition>
       </outbound-resourceadapter>
   </resourceadapter>
   <adminobject>
       <adminobject-interface>javax.jms.Queue</adminobject-interface>
<adminobject-class>org.activemq.message.ActiveMQQueue</ adminobject-class>
       <adminobject-instance>
<message-destination-name>OrderQueue</message- destination-name> <config-property-setting name="PhysicalName">OrderQueue</config-property-setting>
       </adminobject-instance>
       <adminobject-instance>
<message-destination-name>ConsignmentQueue</message- destination-name> <config-property-setting name="PhysicalName">ConsignmentQueue</config-property-setting>
       </adminobject-instance>
   </adminobject>
   <adminobject>
       <adminobject-interface>javax.jms.Topic</adminobject-interface>
<adminobject-class>org.activemq.message.ActiveMQTopic</ adminobject-class>
   </adminobject>
</connector>

I have the MDB with the following annotation

@MessageDriven(activationConfig = {
@ActivationConfigProperty(propertyName="destinationType", propertyValue="javax.jms.Queue"), @ActivationConfigProperty(propertyName="destination", propertyValue="jms/OrderQueue")
})

I have a Servlet with the following annotated Queue and ConnectionFactory:

   @Resource(mappedName="jms/OrderQueue")
   private static Queue receivingQueue;
   @Resource(mappedName="jms/CommonConnectionFactory")
   private static QueueConnectionFactory factory;

I have the geronimo-web.xml file which has the following:

 <resource-ref>
   <ref-name>jms/CommonConnectionFactory</ref-name>
   <resource-link>CommonConnectionFactory</resource-link>
 </resource-ref>
 <resource-env-ref>
      <ref-name>jms/OrderQueue</ref-name>
      <admin-object-link>OrderQueue</admin-object-link>
 </resource-env-ref>

However, I think that these references are unnecessary when the annotations are present. But I am new to EJBs in general so I am not sure.

And I also have a web.xml with the following references too

   <resource-ref>
       <res-ref-name>jms/CommonConnectionFactory</res-ref-name>
       <res-type>javax.jms.QueueConnectionFactory</res-type>
       <res-auth>Container</res-auth>
       <res-sharing-scope>Shareable</res-sharing-scope>
    </resource-ref>
     <message-destination-ref>
<message-destination-ref-name>jms/OrderQueue</message- destination-ref-name> <message-destination-type>javax.jms.Queue</message- destination-type> <message-destination-usage>Produces</message-destination- usage> <message-destination-link>OrderQueue</message-destination- link>
   </message-destination-ref>

Am I missing something? I would appreciate any type of feedback.

Thanks,
Viet Nguyen


Reply via email to