Issue
I have tried deploying basic mule application(using http listener connector) in tomcat and jetty and it worked.Here I changed the endpoints of http to ...
<servlet:inbound-endpoint path="sample"/>
<set-payload value="Hello mule!"/>
But now I'm trying to deploy other applications of mule, which uses inbuilt connectors like salesforce, I'm confused how to change the endpoints now.
For example this is how my config.xml file look.
I'm using mule 4.3. Please guide/help me in this. Thanks in advance.
Solution
A Mule flow is triggered by a message source. ie a ´connector´ that receives a request or message and starts the flow execution. When deploying the Mule application in a servlet container like Tomcat usually you would intend to receive HTTP requests from the container rather than using Mule own HTTP connector. That's the reason to use the servlet endpoint to map requests from the container to flows.
Using it embedded you lose management options and some features. Built in libraries management is all manual so error prone. If you don't have a really good reason to deploy embedded I strongly recommend to use Mule standalone. For new projects you should be really using Mule 4.3 which is the current and modern version of Mule. All Mule 3.x releases are out of standard support period and no new improvements should be expected until the EOL.
Some connectors and endpoints are builtin in Mule 3.x (like the HTTP or SFTP connectors) and some need to be added to the project, like the Salesforce or SAP connectors. If you are using a Maven project you need to add the connectors dependencies.
Note that the Salesforce connector requires that you use the enterprise version of Mule and as I mentioned, Mule 3.x has more limited support at this time.
Answered By - aled
Answer Checked By - Timothy Miller (JavaFixing Admin)