geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Stella Lok" <oinvertedwo...@gmail.com>
Subject Re: Accessing JMS Resources From J2EE Application Client
Date Wed, 23 Jul 2008 08:43:38 GMT
Hi,

Thanks so much for letting me know I'm on the right track. How may I find
the activemq rar file in the geronimo repository?

I have tried pointing the external-rar to:
     <external-rar>
              <dep:groupId>org.apache.activemq</dep:groupId>
              <dep:artifactId>activemq-core</dep:artifactId>
              <dep:version>4.1.1</dep:version>
              <dep:type>jar</dep:type>
        </external-rar>
but I get a null pointer exception in deploying. I'm wondering whether it is
valid to point to that file as it is not a resource adapter or a module, but
just a jar file residing in
repository/org/apache/activemq/activemq-core/4.1.1/activemq-core-4.1.1.jar ?
I cannot find any other activemq file in the repository folder. I also
couldn't find an example in the 2.0.2 daytrader application. There is a
reference in the older samples, but it is based on an older schema where
external-rar is of type string.

Any help would be much appreciated

Sincerely,
Stella

On Wed, Jul 23, 2008 at 1:29 AM, David Jencks <david_jencks@yahoo.com>
wrote:

> You are correct that you need to deploy the resource adapter on the app
> client as well as the server.  I think the problem is that your external-rar
> tag is pointing to the server's broker configuration rather than the
> actibvemq rar file in the geronimo repository.
> I think there's correct configuration in one of the daytrader app clients.
>
> This would make a great subject for a wiki page (I haven't searched much,
> maybe there already is one?)
>
> thanks
> david jencks
>
> On Jul 22, 2008, at 2:47 AM, Stella Lok wrote:
>
> Hi,
>
> I am trying to access a server-scoped JMS TopicConnectionFactory and Topic
> on Geronimo 2.02, from a J2EE Application Client, but am encountering
> problems. Here are the steps I took:
>
> 1) Deployed JMS TopicConnectionFactory & Topic in Resource Adapter:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <connector xmlns="http://geronimo.apache.org/xml/ns/j2ee/connector-1.2">
>     <dep:environment xmlns:dep="
> http://geronimo.apache.org/xml/ns/deployment-1.2">
>         <dep:moduleId>
>             <dep:groupId>console.jms</dep:groupId>
>             <dep:artifactId>topic</dep:artifactId>
>             <dep:version>1.0</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>eventTopicResourceAdapter</resourceadapter-name>
>         <config-property-setting
>         name="ServerUrl">tcp://localhost:61616</config-property-setting>
>         <config-property-setting
> name="UserName">system</config-property-setting> <config-property-setting
>      name="Password">manager</config-property-setting>
>             <nam:workmanager xmlns:nam="
> http://geronimo.apache.org/xml/ns/naming-1.2">
>                 <nam:gbean-link>DefaultWorkManager</nam:gbean-link>
>             </nam:workmanager>
>         </resourceadapter-instance>
>         <outbound-resourceadapter>
>             <connection-definition>
>
> <connectionfactory-interface>javax.jms.TopicConnectionFactory</connectionfactory-interface>
>                 <connectiondefinition-instance>
>                     <name>jms/topicConnectionFactory</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.apache.activemq.command.ActiveMQQueue</adminobject-class>
>     </adminobject>
>     <adminobject>
>         <adminobject-interface>javax.jms.Topic</adminobject-interface>
>
> <adminobject-class>org.apache.activemq.command.ActiveMQTopic</adminobject-class>
>         <adminobject-instance>
>             <message-destination-name>topic</message-destination-name>
>             <config-property-setting
> name="PhysicalName">topic</config-property-setting>
>         </adminobject-instance>
>     </adminobject>
> </connector>
>
> 2) I created a dummy J2EE application client with the following deployment
> descriptors:
> *application.xml*:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <application-client version="5" xmlns="http://java.sun.com/xml/ns/javaee"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
> http://java.sun.com/xml/ns/javaee
> http://java.sun.com/xml/ns/javaee/application-client_5.xsd">
>     <resource-ref>
>         <res-ref-name>jms/topicConnectionFactory</res-ref-name>
>         <res-type>javax.jms.TopicConnectionFactory</res-type>
>         <res-auth>Container</res-auth>
>         <res-sharing-scope>Shareable</res-sharing-scope>
>     </resource-ref>
>     <message-destination-ref>
>         <message-destination-ref-name>topic</message-destination-ref-name>
>
> <message-destination-type>javax.jms.Topic</message-destination-type>
>         <message-destination-usage>Consumes</message-destination-usage>
>         <message-destination-link>topic</message-destination-link>
>     </message-destination-ref>
>     <message-destination>
>         <message-destination-name>topic</message-destination-name>
>     </message-destination>
> </application-client>
>
> and *geronimo-application-client.xml:*
> <?xml version="1.0" encoding="UTF-8"?>
>
> <application-client xmlns="
> http://geronimo.apache.org/xml/ns/j2ee/application-client-2.0"
>   xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.2"
>   xmlns:naming="http://geronimo.apache.org/xml/ns/naming-1.2"
>   xmlns:security="http://geronimo.apache.org/xml/ns/security-2.0"
>   xmlns:connector="http://geronimo.apache.org/xml/ns/j2ee/connector-1.2">
>
>   <dep:client-environment>
>     <dep:moduleId>
>       <dep:groupId>client</dep:groupId>
>       <dep:artifactId>jmsClient</dep:artifactId>
>       <dep:version>1</dep:version>
>       <dep:type>car</dep:type>
>     </dep:moduleId>
>     <dep:dependencies/>
>     <dep:hidden-classes/>
>     <dep:non-overridable-classes/>
>   </dep:client-environment>
>   <dep:server-environment>
>     <dep:moduleId>
>       <dep:groupId>console.jms</dep:groupId>
>       <dep:artifactId>topic</dep:artifactId>
>       <dep:version>1.0</dep:version>
>       <dep:type>rar</dep:type>
>     </dep:moduleId>
>     <dep:dependencies/>
>     <dep:hidden-classes/>
>     <dep:non-overridable-classes/>
>   </dep:server-environment>
>   <resource-ref>
>    <ref-name>jms/topicConnectionFactory</ref-name>
>     <resource-link>jms/topicConnectionFactory</resource-link>
>   </resource-ref>
>   <message-destination>
>     <message-destination-name>topic</message-destination-name>
>     <admin-object-link>topic</admin-object-link>
>   </message-destination>
>   <resource>
>         <external-rar>
>               <dep:groupId>org.apache.geronimo.configs</dep:groupId>
>               <dep:artifactId>activemq-broker</dep:artifactId>
>               <dep:version>2.0.2</dep:version>
>               <dep:type>car</dep:type>
>         </external-rar>
>
>         <connector xmlns="
> http://geronimo.apache.org/xml/ns/j2ee/connector-1.2">
>         <resourceadapter>
>             <resourceadapter-instance>
>                 <resourceadapter-name>ActiveMQ RA</resourceadapter-name>
>                 <config-property-setting name="ServerUrl">tcp://
> 172.168.29.227:61616</config-property-setting>
>                 <config-property-setting
> name="UserName">system</config-property-setting>
>                 <config-property-setting
> name="Password">manager</config-property-setting>
>                 <workmanager>
>                     <gbean-link>DefaultWorkManager</gbean-link>
>                 </workmanager>
>                 </resourceadapter-instance>
>                  <outbound-resourceadapter>
>                  <connection-definition>
>
> <connectionfactory-interface>javax.jms.ConnectionFactory</connectionfactory-interface>
>
>                      <connectiondefinition-instance>
>                      <name>jms/topicConnectionFactory</name>
>
> <implemented-interface>javax.jms.QueueConnectionFactory</implemented-interface>
>
> <implemented-interface>javax.jms.TopicConnectionFactory</implemented-interface>
>                      <connectionmanager>  <xa-transaction>
> <transaction-caching/>  </xa-transaction>  <single-pool>
> <max-size>10</max-size>
> <blocking-timeout-milliseconds>5000</blocking-timeout-milliseconds>
> <match-one/>  </single-pool>  </connectionmanager>
> </connectiondefinition-instance>  </connection-definition>
> </outbound-resourceadapter>
>
>                  </resourceadapter>
>
> <adminobject>
>     <adminobject-interface>javax.jms.Topic</adminobject-interface>
>
> <adminobject-class>org.apache.activemq.command.ActiveMQTopic</adminobject-class>
>
>     <adminobject-instance>
>         <message-destination-name>bacmTopic</message-destination-name>
>         <config-property-setting
> name="PhysicalName">bacmTopic</config-property-setting>
>         </adminobject-instance>
> </adminobject>
>
> </connector> </resource>
> </application-client>
>
>
> Bascially, what I'm trying to do is deploy the TopicConnectionFactory and
> Topic on the server, and use my application client to look them up.
>
> However, when I try to deploy the application client, I get this error:
> "Error: Unable to distribute MyAppClient.jar: Could not access external rar
> contents for artifact: org.apache.geronimo.configs/activemq-broker/2.0.2/car
> Access is denied"
>
> I'm not even sure if I'm doing the right thing by trying to deploy the
> activemq resource adapter on the client container as well (I picked up that
> tip online). If anyone could help me figure out how to let my application
> client access the JMS resources, please let me know!
>
> Thanks a lot,
> Stella
>
>
>

Mime
View raw message