Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This section describes how to integrate WSO2 Message Broker with WSO2 App Server to facilitate subscribing web services to JMS queues or topics, and receiving messages from the broker.

...

Code Block
languagehtml/xml
<!-- uncomment this and configure to use connection pools for sending messages>
<transportSender name="jms" class="org.apache.axis2.transport.jms.JMSSender"/-->

...

4. Then add the following 'jndi.properties' into $AS_HOME/repository/conf/ directory in order to point to the running Message Broker.

Code Block
languagehtml/xml
#
#  Copyright (c) 2011, WSO2 Inc. (http://wso2.com) All Rights Reserved.
#
#  Licensed under the Apache License, Version 2.0 (the "License");
#  you may not use this file except in compliance with the License.
#  You may obtain a copy of the License at
#
#        http://www.apache.org/licenses/LICENSE-2.0
#
#  Unless required by applicable law or agreed to in writing, software
#  distributed under the License is distributed on an "AS IS" BASIS,
#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#  See the License for the specific language governing permissions and
#  limitations under the License.
#

# register some connection factories
# connectionfactory.[jndiname] = [ConnectionURL]
connectionfactory.QueueConnectionFactory = amqp://admin:admin@clientID/carbon?brokerlist='tcp://localhost:5673'
connectionfactory.TopicConnectionFactory = amqp://admin:admin@clientID/carbon?brokerlist='tcp://localhost:5673'
# register some queues in JNDI using the form
# queue.[jndiName] = [physicalName]
queue.SimpleEventSinkService = SimpleEventSinkService

# register some topics in JNDI using the form
# topic.[jndiName] = [physicalName]

...

'

...

5. Copy the following jar files from <MB_HOME>/client-lib folder to <AS_HOME>/repository/components/lib folder. They are client libraries required from Message Broker to AS.

...

• geronimo-jms_1.1_spec-1.1.0.wso2v1

Info
titleImportant
In addition
to that
, for
the
App Server
version
5.1.0,
it is needed to
replace $<AS_HOME>/repository/components/plugins/axis2-transport-jms_1.1.0.wso2v7.jar file with the one attached here. The reason for this is some recent JMS transport level changes which affects
into
the integration of AS with MB. However, this issue will be fixed from
the
App Server
version
5.1.1 onwards and this replacement would not be
not
necessary.

6. Once the JMS transport is enabled for App Server, it will reflect in all the services deployed in App Server and this can cause an unexpected error while the server start starts up. Message Broker handles this for axis2 services by using dynamic queue/topic support, however the REST, JS services deployed in App Server still needs to be explicitly configured. Therefore, edit and add the following parameters into the $<AS_HOME>/repository/deployment/server/servicemetafiles/admin/RESTSample.xml file. Make sure the exposedAllTransports parameter is set to 'false'.

...

This section describes, through a usecase, how to integrate WSO2 Message Broker for using a WSO2 AS web service as the JMS subscriber.

Usecase

Deploy a sample web service in App Server which listens on SOAP messages and print prints message string into console. Then a A JMS queue for with the name of this service will be generated in the Message Broker. Publish a message to this queue and it will be received and printed into the App Server console by the sample web service.

1. Log into App Server and upload SimpleEventSinkService.aar archive which can be downloaded from here, by selecting 'Home --> Manager --> Services --> Add --> AAR Service'.
2. Log into Message Broker and publish a text message into the created SimpleEventSinkService queue using the message sender UI.

...


3. Go to the App Server terminal back and the published message will be displayed in the console as, 'Got the message ==> Test Message'.