Connect with Solace from MuleSoft
To show how we connect with Solace from MuleSoft we will create a Mule project and import a Solace jar to connect with the Solace environment
Let`s create a Solace project in MuleSoft

Now we have to import the Solace jar using Maven, Open pom.xml
Add properties
<solace.version>10.3.1</solace.version> <javax-jms-version>1.1</javax-jms-version> <javax.jms.api.version>2.0.1</javax.jms.api.version>
Add shared libraires
<sharedLibrary>
<groupId>com.solacesystems</groupId>
<artifactId>sol-jms</artifactId>
</sharedLibrary>
<sharedLibrary>
<groupId>com.solacesystems</groupId>
<artifactId>sol-common</artifactId>
</sharedLibrary>
<sharedLibrary>
<groupId>com.solacesystems</groupId>
<artifactId>sol-jcsmp</artifactId>
</sharedLibrary>
<sharedLibrary>
<groupId>javax.jms</groupId>
<artifactId>jms</artifactId>
</sharedLibrary>
<sharedLibrary>
<groupId>javax.jms</groupId>
<artifactId>javax.jms-api</artifactId>
</sharedLibrary>
Add dependencies
<dependency>
<groupId>com.solacesystems</groupId>
<artifactId>sol-jms</artifactId>
<version>${solace.version}</version>
</dependency>
<dependency>
<groupId>com.solacesystems</groupId>
<artifactId>sol-common</artifactId>
<version>${solace.version}</version>
</dependency>
<dependency>
<groupId>com.solacesystems</groupId>
<artifactId>sol-jcsmp</artifactId>
<version>${solace.version}</version>
</dependency>
<dependency>
<groupId>javax.jms</groupId>
<artifactId>jms</artifactId>
<version>${javax-jms-version}</version>
</dependency>
<dependency>
<groupId>javax.jms</groupId>
<artifactId>javax.jms-api</artifactId>
<version>${javax.jms.api.version}</version>
</dependency>
Add repository
<repository>
<id>repository.jboss.org-public</id>
<name>JBoss.org Maven repository</name>
<url>https://repository.jboss.org/nexus/content/groups/public</url>;
</repository>
Final pom.xml will look like
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany</groupId>
<artifactId>solace-service</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>mule-application</packaging>
<name>solace-service</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<solace.version>10.3.1</solace.version>
<javax-jms-version>1.1</javax-jms-version>
<javax.jms.api.version>2.0.1</javax.jms.api.version>
<app.runtime>4.3.0-20210119</app.runtime>
<mule.maven.plugin.version>3.4.2</mule.maven.plugin.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
<version>3.0.0</version>
</plugin>
<plugin>
<groupId>org.mule.tools.maven</groupId>
<artifactId>mule-maven-plugin</artifactId>
<version>${mule.maven.plugin.version}</version>
<extensions>true</extensions>
<configuration>
<sharedLibraries>
<sharedLibrary>
<groupId>org.mule.connectors</groupId>
<artifactId>mule-jms-connector</artifactId>
</sharedLibrary>
<sharedLibrary>
<groupId>com.mycompany</groupId>
<artifactId>solace-simple-01</artifactId>
</sharedLibrary>
<sharedLibrary>
<groupId>com.solacesystems</groupId>
<artifactId>sol-jms</artifactId>
</sharedLibrary>
<sharedLibrary>
<groupId>com.solacesystems</groupId>
<artifactId>sol-common</artifactId>
</sharedLibrary>
<sharedLibrary>
<groupId>com.solacesystems</groupId>
<artifactId>sol-jcsmp</artifactId>
</sharedLibrary>
<sharedLibrary>
<groupId>javax.jms</groupId>
<artifactId>jms</artifactId>
</sharedLibrary>
<sharedLibrary>
<groupId>javax.jms</groupId>
<artifactId>javax.jms-api</artifactId>
</sharedLibrary>
</sharedLibraries>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.mule.connectors</groupId>
<artifactId>mule-http-connector</artifactId>
<version>1.5.23</version>
<classifier>mule-plugin</classifier>
</dependency>
<dependency>
<groupId>org.mule.connectors</groupId>
<artifactId>mule-sockets-connector</artifactId>
<version>1.2.0</version>
<classifier>mule-plugin</classifier>
</dependency>
<dependency>
<groupId>org.mule.connectors</groupId>
<artifactId>mule-jms-connector</artifactId>
<version>1.7.1</version>
<classifier>mule-plugin</classifier>
</dependency>
<dependency>
<groupId>com.mycompany</groupId>
<artifactId>solace-simple-01</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.solacesystems</groupId>
<artifactId>sol-jms</artifactId>
<version>${solace.version}</version>
</dependency>
<dependency>
<groupId>com.solacesystems</groupId>
<artifactId>sol-common</artifactId>
<version>${solace.version}</version>
</dependency>
<dependency>
<groupId>com.solacesystems</groupId>
<artifactId>sol-jcsmp</artifactId>
<version>${solace.version}</version>
</dependency>
<dependency>
<groupId>javax.jms</groupId>
<artifactId>jms</artifactId>
<version>${javax-jms-version}</version>
</dependency>
<dependency>
<groupId>javax.jms</groupId>
<artifactId>javax.jms-api</artifactId>
<version>${javax.jms.api.version}</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>anypoint-exchange-v2</id>
<name>Anypoint Exchange</name>
<url>https://maven.anypoint.mulesoft.com/api/v2/maven</url>
<layout>default</layout>
</repository>
<repository>
<id>mulesoft-releases</id>
<name>MuleSoft Releases Repository</name>
<url>https://repository.mulesoft.org/releases/</url>
<layout>default</layout>
</repository>
<repository>
<id>repository.jboss.org-public</id>
<name>JBoss.org Maven repository</name>
<url>https://repository.jboss.org/nexus/content/groups/public</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>mulesoft-releases</id>
<name>mulesoft release repository</name>
<layout>default</layout>
<url>https://repository.mulesoft.org/releases/</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</project>
Now drag and drop JMS On New Message Component and click on add connector configuration

Select Generic Connection

Add the Connection Factory JNDI, JNDI Initial factory, Soalce_JMS_VPN key and JNDI provider url as per the configuration noted while creating the Solace environment
We have to use username:password@ in provider url

Provide the username and password as well

Once done click on test connection

JMS Configuration will look like
<jms:config name="Solace" doc:name="JMS Config" doc:id="01e212f2-1377-4c3a-885b-7ebd65bce7c4">
<jms:generic-connection username="solace-cloud-client" password="***********">
<jms:connection-factory>
<jms:jndi-connection-factory connectionFactoryJndiName="/jms/cf/default">
<jms:custom-jndi-name-resolver>
<jms:simple-jndi-name-resolver jndiInitialFactory="com.solacesystems.jndi.SolJNDIInitialContextFactory" jndiProviderUrl="tcps://solace-cloud-client:[email protected]:55443">
<jms:jndi-provider-properties>
<jms:jndi-provider-property key="Solace_JMS_VPN" value="mulesy_solace_broker"/>
</jms:jndi-provider-properties>
</jms:simple-jndi-name-resolver>
</jms:custom-jndi-name-resolver>
</jms:jndi-connection-factory>
</jms:connection-factory>
</jms:generic-connection>
</jms:config>
Sample Mule Application – solace-service