Got it working. Procedure, as follows :-
In order to have Apache ActiveMQ as a valid JMS target, the following steps need to be done. I have taken the Resource Adapter archive from an ActiveMQ installation lib\optional\activemq-rar-5.2.0.rar This is the activeMQ resource adapter archive - for client as well as embedded server. Personally, I don't think we need to include all this if we just want a client, only if we want an embedded server. Still, it worked, time to fine tune later. I Created a directory on the Oracle_SOA VM called e:\activemq-rar-5.2.0\ which contains the extracted content of the activemq-rar-5.2.0.rar archive (and contrary to file suffix, it is a jar archive, you don't need winrar to unpack it). Placed the following XML segment <shared-library name="apache.jmsprovider.mq" version="5.2.0"> <code-source path="e:\activemq-rar-5.2.0\activation-1.1.jar"/> <code-source path="e:\activemq-rar-5.2.0\activeio-core-3.1.0.jar"/> <code-source path="e:\activemq-rar-5.2.0\activemq-core-5.2.0.jar"/> <code-source path="e:\activemq-rar-5.2.0\activemq-ra-5.2.0.jar"/> <code-source path="e:\activemq-rar-5.2.0\backport-util-concurrent-2.1.jar"/> <code-source path="e:\activemq-rar-5.2.0\broker-config.xml"/> <code-source path="e:\activemq-rar-5.2.0\camel-core-1.5.0.jar"/> <code-source path="e:\activemq-rar-5.2.0\derby-10.1.3.1.jar"/> <code-source path="e:\activemq-rar-5.2.0\geronimo-j2ee-management_1.0_spec-1.0.jar"/> <code-source path="e:\activemq-rar-5.2.0\jaxb-api-2.0.jar"/> <code-source path="e:\activemq-rar-5.2.0\jaxb-impl-2.0.3.jar"/> <code-source path="e:\activemq-rar-5.2.0\jsr173_api-1.0.jar"/> <code-source path="e:\activemq-rar-5.2.0\log4j-1.2.14.jar"/> <code-source path="e:\activemq-rar-5.2.0\xbean-spring-3.4.jar"/> <import-shared-library name="apache.commons.logging"/> </shared-library> into e:\SOASuite10131\j2ee\home\config\server.xml (there where about 7 server.xml files on the machine, this appeared to be the appropriate one) I then edited E:\SOASuite10131\j2ee\home\config\application.xml changing <orion-application> ... <imported-shared-libraries> <import-shared-library name="adf.oracle.domain"/> </imported-shared-libraries> to <orion-application> ... <imported-shared-libraries> <import-shared-library name="adf.oracle.domain"/> <import-shared-library name="apache.jmsprovider.mq"/> </imported-shared-libraries> I then added <connector-factory location="eis/activemq/Queue" connector-name="Jms Adapter"> <config-property name="connectionFactoryLocation" value="org.apache.activemq.ActiveMQConnectionFactory"/> <config-property name="factoryProperties" value="BrokerURL=tcp://<xxx.xxx.xxx.xxx>:61616"/> <config-property name="acknowledgeMode" value="AUTO_ACKNOWLEDGE"/> <config-property name="isTopic" value="false"/> <config-property name="isTransacted" value="true"/> <config-property name="username" value="system"/> <config-property name="password" value="manager"/> <connection-pooling use="none"> </connection-pooling> <security-config use="none"> </security-config> </connector-factory> as the last entry in E:\SOASuite10131\j2ee\home\application-deployments\default\JmsAdapter\oc4j-ra.xml. I obtained the username/passwords from an activeMQ instance c:\apache-activemq-5.2.0conf\credentials.properties file. Once again, not sure if needed. It should be noted, that according to the ActiveMQ Resource Adapter Documenation, the BrokerURL property is optional, but I have coded it to point to our running ActiveMQ broker, for the sake of a quiet life (which I never seem to have). Once the above steps had been done, it is possible to create a JMS Partner link in JDeveloper, entirely using the GUI tools Procedure as follows :- Create a Synchronous BPEL application using the JDeveloper Create a partner link for ActiveMQ of type JMS Adapter Wizard settings as follows :- Page 1 * Third Party Page 2 * Factory Properties - Set the following properties - ALL of these are optional, really, so long as you set ONE of them or you won't be able to proceed to the next page. Maybe username/password you will be ok (the defaults are set in the Application Server, as per the instructions above - still, I figure it's best to specify everything, thus, making the defaults superfluous) NOTE: A bug in the Adapter configuration wizard will not parse the factoryProperties=BrokerURL=tcp://ip.add.res.ss:port part correctly, on subsequent passes through the wizard. You will need to re-enter that property. * connectionFactoryLocation=org.apache.activemq.ActiveMQConnectionFactory * factoryProperties=BrokerURL=tcp://<xxx.xxx.xxx.xxx>:61616 * isTopic=false * isTransacted=true * username=system (found in credentials.properties of ActiveMQ installation - optional) * password=manager (found in credentials.properties of ActiveMQ installation - optional) * acknowledgeMode=AUTO_ACKNOWLEDGE * JMS Connection Factory = ConnectionFactory * Transacted = true * Desintation Type = Queue * User Name = blank * Password = blank * JMS Connection JNDI Name = eis/activemq/Queue (corresponds to install instructions, above) Page 3 * Operation Type = Produce Message * Operation Name = Produce_Message Page 4 * Destination Name = target ActiveMQ Queue - say Testing.Queue * Message Body Type = TextMessage * Delivery Mode = Persistent * Priority = Default * TimeToLive = 0 Page 5 * Choose a WSDL that reflects the message type expected - in my test case, I simply chose the incoming message WSDL Setup the Invoke step * Populate the Input and Output variables appropriately, using an assign Deploy Test Check the queue in http://<xxx.xxx.xxx.xxx>:8161/admin/queues.jsp to see if your message has arrived. -- View this message in context: http://www.nabble.com/Oracle-BPEL-%3C-%3E-ActiveMQ---Howto--tp22449017p22572359.html Sent from the ActiveMQ - User mailing list archive at Nabble.com.