mule,mule-studio,mule-el,mule-component
As far as I can see in the code, the default value is 0 (that means forever) and is inherited from AbstractAggregator.
transactions,mule,mule-studio,mule-component
Put a transactional scope around your flow refs, Use sub-flow instead of flow for your sub-flows so exceptions happening in them will bubble up to the transactional scope of the caller flow. ...
I could only get that error using the exact config you provided, because there are weird characters in it, see: ❶ I guess you copy-pasted from the docs site? Those are references within the docs. Removed them and it should work.
The JSON HTTP body will automatically become the payload of your message in Mule probably represented as Stream. Just for demo purposes, try logging the payload after your http:listener using: <object-to-string-transformer /> <logger level="INFO" message="#[payload]" /> There best way to query JSON is to transform it to a Map suing...
After some testing around, it worked. It might seem very stupid and my jaw dopped a couple of times, I restarted, cleared all cash, re-built and it seems like the interceptor works WHEN I add an extra line, which is unbelievable, I know: package se.comaround.interceptors; import java.util.HashMap; import java.util.Map; import...
mule,mule-studio,mule-component
If you want simple way, basic authentication is there which is very simple, but it is based on Transport layer, but yes simple to implement reference :-http://confluex.com/blog/http-inbound-endpoint-basic-authentication/ , You can also use oauth 2.0 for securing your service where you need to validate the token before a client can access...
xml,xpath,mule,xslt-1.0,mule-studio
As Victor said you need to use mulexml:namespace-manager for name space :- Try the following :- <mulexml:namespace-manager includeConfigNamespaces="true"> <mulexml:namespace prefix="ns0" uri="http://www.example.com/xmlns/9/Test"/> <mulexml:namespace prefix="ns2" uri="http://www.example.com/xmlns/9/foundation"/> </mulexml:namespace-manager> Then use the following Xpath to retrieve UniqueID :- #[xpath('//ns0:Start/ns0:Area/ns0:Test/ns0:Identifier/ns2:UniqueID').text] and ExternalOrderID :-...
oracle,oracle11g,mule,datasource,mule-studio
This is how you can configure your oracle :- <spring:beans> <spring:bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <spring:property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/> <spring:property name="url" value="jdbc:oracle:thin:@192.168.28.129:1521:xe"/> <spring:property name="username" value="yourUserName"/> <spring:property name="password" value="yourPassword"/> <spring:property name="removeAbandoned"...
mule,mule-studio,mule-component
There is nothing out of the box for generating a PDF. You could create a custom transformer or component using Apache FOP that can use xsl-fo templates for generating PDFs for example. Here is an old transformer created for Apache FOP that you could use for inspiration: https://github.com/muleforge/Apache-FOP And someone...
I suspect that you edited the flow in visual mode instead of XML and that Studio has transformed this (which came from the download): <imaps:connector checkFrequency="100" doc:name="IMAP" name="imapsConnector" validateConnections="true"> </imaps:connector> into that: <imaps:connector checkFrequency="100" doc:name="IMAP" name="imapsConnector" validateConnections="true"> <imaps:tls-client path="" storePassword="" /> <imaps:tls-trust-store path="" storePassword="password" /> </imaps:connector> i.e. empty tls...
You should always use async, wire-tap is legacy and inherited from older versions of mule. The implications are at the threading level, specially the difference is from which internal thread pool they take the thread from. Please bear in mind that its use should be very simple, otherwise it may...
mule,mule-studio,mule-el,mule-component
MessageId is a UUID generated for every MuleMessage object instance generated in Mule. By default, the RootId is the same as the MessageId. However, there are some Endpoints (such as the JMS) that share the RootId, sending it as a property. Imagine you have a flow1 that sends a message...
json,post,mule,esb,mule-studio
You could try adding <set-variable variableName="Content-Type" value="application/json" /> just above your http request endpoint. For more details have a look here Let me know if this works for you....
Simply choose a DataMapper node and select "Map" as source type and "Fixed Width" as target type. Define the fields in the Map (or list of maps). The field names are equal to the keys in the map (essentially column names in the Database case). The same goes for fixed...
mule,mule-studio,mule-component
This is possible by -> jdbc:inbound-endpoint -> 'enritcher(jdbc:outbound-endpoint, setting flowvar 'shouldBeFiltered')' -> expression-filter(based on the value of the flowvar 'shouldBeFiltered')....
I've just installed Anypoint Devkit Extension 1.0.2.201410031957 org.mule.tooling.incubator.devkit.extension.feature.group (the one present of the addons plugin software site) succesfully on my Anypoint Studio October 2014 Release Version: 4.1.1 Build Id: 201411041003. Please, upgrade to the lastest Studio and use the aforementioned sofware site....
mule,mule-studio,mule-component
You are right about the concept of outbound properties,but you need to consider following scenarios The outbound properties(which can later become inbound properties) are visible only during execution of single flow i.e. they cannot be used across multiple flows. when message is passed to a new flow via a flow-ref...
mule,mule-studio,mule-el,mule-component
You can extract the flow-name with MEL : #[flow.name] <flow name="name" doc:name="name"> <http:inbound-endpoint address="http://localhost:8090/resources" doc:name="HTTP" /> <logger message="name of flow: #[flow.name]" level="INFO" doc:name="Logger"/> <set-payload value="name" doc:name="Set Payload"/> </flow> or flowConstruct.getName() in a Message Processor ...
That's the way that Eclipse works on Windows, it will happen with any IDE based on Eclipse. I believe what you can do, probably not the best, is to have an installation of Studio in a folder inside of the user profile, so each user will have it's own installation....
Something wrong is happening in your route 0. You are getting a composite routing exception as per documentation: The CompositeRoutingException is new to the 3.5.0 Runtime. It extends the Mule MessagingException to aggregate exceptions from different routes in the context of a single message router. Exceptions are correlated to each...
mule,mule-studio,mule-component
I believe this is a bug, as you correctly reported here: https://github.com/mulesoft/munit/issues/156
mule,mule-studio,payload,mule-component
Providing that your payload is a List of Maps the following MEL expression should get the Source value for the first element. payload[0]['Source'] If your payload is just a simple two dimensional array you can use payload[0][3] ...
rabbitmq,mule,activemq,messaging,mule-studio
There is no way you can have multiple concurrent consumers and honor fifo ordering at the same time. You can, however, have multiple non-concurrent consumers for an improved availability using a feature called: exclusive consumers. You can activate this with the attribute exclusiveConsumers of the connector. Regarding the stop processing...
rest,mule,mule-studio,mule-component
Different service mechanism requires different configuration... If you want to do it in a single flow, as Victor said you need to use choice router and based on certain condition it will call the rest service it required... and in each Choice block, you have to configure the calling of...
mule,mule-studio,mule-el,mule-component
I'm afraid this is a known limitation of the web services consumer. However you can accomplish this with the cxf component.
mule,mule-studio,mule-component
You can use an Idempotent Message Filter (after the Splitter) to ensure that duplicate entries are discarded. If you json representation has an unique identifier, use the Idempotent Message Filter <idempotent-message-filter idExpression="#[entry.id]"> <simple-text-file-store directory="./idempotent"/> </idempotent-message-filter> Otherwise, use the Idempotent Secure Hash Message Filter (which will filter messages based on their...
mule,mule-studio,mule-el,mule-component
This cannot be accomplished with DataMapper, you need an ulterior XSLT transformer to remove duplicates, see the following stackoverflow question.
Success! After a lot of mucking around (and a crash course in learning XML with Java) and taking Eddu's post above, I was able to create a custom transformer. Changed the 'Object to XML' transformer to a 'Java' transformer in my flow. Created Class SQLCustomerToXML (ensuring return type of String)....
mule,mule-studio,mule-component,mule-el
The main issue is that you are embedding MEL into MEL which can't work. Also the boolean-as-string comparison is dodgy. Replace this: #[app.registry.storeDownload.contains('#[flowVars.startKey]').equals('false')] with that: #[!(app.registry.storeDownload.contains(flowVars.startKey))] ...
mule,esb,mule-studio,mule-component
we can create a HTTP-HTTPS global element and in security tab we can enter our keystore location, storePassword and keyPassword. later, we can enable the HTTPS in HTTP End point and refer the HTTPS global element created earlier . <https:connector name="HTTP_HTTPS" cookieSpec="netscape" validateConnections="true" sendBufferSize="0" receiveBufferSize="0" receiveBacklog="0" clientSoTimeout="10000" serverSoTimeout="10000" socketSoLinger="0" doc:name="HTTP-HTTPS">...
http,localhost,mule,esb,mule-studio
So with 3.6, the HTTP connector has changed drastically. Here are some changes: Previously, the HTTP connector would place the contents of the path inside your payload. Moreover, now you need to invoke paths as is. What I mean is that nowadays, if your endpoint is listening on http://localhost:8084/, that's...
May be you could evaluate the expressions using a java component and accessing the eventContext.getMuleContext().getExpressionLanguage().evaluate method. HTH, Marcos...
You could use a <transformer ref="StringToObject" returnClass="java.util.HashMap"/> Once you have a map, just access the keys. Maybe something like #[payload.billing] and #[payload.account] Basically JSON path is a little limited in Mule, so you rather transform the JSON into a HashMap and query them either using MEL or programatically. Addendum Below...
Try using a non-persistent managed-store.
mule,mule-studio,mule-component,mule-el
The default value is 5 retries. You can change this value with the maxRetries attribute on the until-successfull scope, for ex: maxRetries="10" This value is an integer so its max value is 2147483647...
in batch-step of batch process records, add collection splitter before the datmapper and implement the logic you specified for xsd definition for each record format and write it to file as you specified.
mule,mule-studio,mule-component,mule-el
Try with: queueName="#[app.registry.detail.vendor[flowVars.msVendorCode] + '${QUEUENAME}']" ...
I was able to solve it myself by implementing a small java class. Apparently the message properties weren't lost, you just couldn't see them in the debugger anymore because the debugger only shows the properties of the messageCollection that comes out of the aggregator. My flow only needs to run...
It looks like the foreach is processing the values of the inboundAttachmentsmap so you don't get keys. I suggest something like: <foreach doc:name="For Each" collection="#[message.inboundAttachments.entrySet()]"> <expression-transformer doc:name="Expression" expression="#[payload.key != 0]"/> ... </foreach> Now you'll process key-value pairs so you might need to use a set-payload to send just payload.value, saving...
mule,mule-studio,mule-component
files under src/main/resources will be available from the classpath, so there should be no reason to lookup the root directory. Just read it from classpath as "myfolder/myfile.xml". E.g: <set-payload value="#[Thread.currentThread().getContextClassLoader().getResourceAsStream('myfolder/myfile.xml')]" /> ...
mule,mule-studio,mule-component
You need to set the followRedirects flag of the outbound endpoint to true. <http:outbound-endpoint followRedirects="true" .... /> ...
mule,mule-studio,mule-el,mule-component
My gut feel is that something in doing some transformation and processing is damaging these control properties, which prevents the aggregation to work. I realize it's easy to point a finger at what's not shown above but the logs show a clear alteration of the control properties so it has...
The problem comes from: StringUtils.split(message.payload, ',') This produces an array of strings. If the CSV is: your basic description,, it will use an empty string as the value for the date field, which I don't think is OK. If the CSV is: your basic description,NULL, it will use a string...
Indeed, inboundAttachments is a map so you can only access a specific value using it's key, not an index. Of course you can also get a collection of all keys or values.
mule,mule-studio,mule-component
You could try the twilio connector, as twilio does provide sms services.
mule,mule-studio,mule-component
The expression-transformer replaces the current payload with the value returned by the expression. I'm guessing setEventId is void thus the expression returns null, hence the exception. Use an expression-component instead: <expression-component>payload.setEventId(flowVars['name'])</expression-component> ...
mule,mule-studio,log4j2,logentries
Actually, I found out what was wrong. The problem was here: compile group: 'com.logentries', name: 'logentries-appender', version: 'RELEASE' This downloaded the following jar: file:/C:/Projects/tralala/.mule/apps/ws-comaround-cfx/lib/logentries-appender-1.1.20.jar which do not include the support for log4j2! I had to change to compile group: 'com.logentries', name: 'logentries-appender', version: '1.1.30' 1.1.30 version includes the log4j2 support....
Don't use a range like this: [3.0.0,4.0.0) There are important variations in internal APIs in Mule that could throw transports off if you run one version against the other. Instead be specific. If you target, say, the Mule 3.5.0 Runtime then use: <dependency> <artifactId>mule-transport-http</artifactId> <groupId>org.mule.transports</groupId> <version>3.5.0</version> <scope>compile</scope> </dependency> ...
mule,mule-studio,mule-el,mule-component
This will never work <vm:outbound-endpoint exchange-pattern="one-way" ... First because given that the pattern is one-way the original thread will end, and the message will be put in a seda queue for a different thread pool. Then because, when you put a message on a transport like VM, Http, etc. Flow...
It will prevent a number of problems that could happen: if multiple systems read the same directory if you have a limited space in the unit storing the inbould file if the file is volatile and too large to be processed before it's removed ...you can name others on your...
You are missing an http:listener-config element, like for example: <http:listener-config name="HTTP_Listener_Configuration" host="localhost" port="8081" doc:name="HTTP Listener Configuration"/> See: https://developer.mulesoft.com/docs/display/current/HTTP+Listener+Connector...
I find the solution. By clearing cache for Mule/ Anypoint Studio it works. ./AnypointStudio /JAVA_HOME/bin/ -clean ...
mule,mule-studio,mule-component
Based of the web service consumer documentation, the consumer is expecting the xml request of the service operation. My quick suggestion is to use any tool to build the xml request based on the wsdl (such as SOAP UI) and use it in a set-payload, using MEL expressions to inject...
mule,mule-studio,mule-el,mule-component,mule-cluster
To decide the endpoint details (such as path, host and port) dynamically i.e. at runtime, you will need to execute an expression on the current Mule message for example. See the following link section "Dynamic endpoints" for examples: http://www.mulesoft.org/documentation/display/current/Endpoint+Configuration+Reference
You can use jsonPath something like xpath but for JSON I attached my example with the json provided. As you can see there are #[json:listings] which return array, this array will be iterated by foreach and then validate if contains error tag using #[json:error]. errorCount variable store the number of...
If you want to set the code property through JVM argument, insert the -M-Dcode=24681357 in the VM arguments (and in the program arguments). If you want to set the code property in the mule-app.properties, the line should be code=24681357 instead of -M-Dcode=24681357. Thoose are two ways of setting properties in...
mule,amqp,mule-studio,mule-el,mule-component
With MANUAL, you have to manually ack (or reject) messages, as discussed here: https://github.com/mulesoft/mule-transport-amqp/blob/master/GUIDE.md#manual-message-acknowledgement-and-rejection In essence, this is done with: <amqp:acknowledge-message /> and: <amqp:reject-message requeue="true" /> With MULE_AUTO, Mule should acknowledge the messages automatically when the flow is done processing. If it doesn't do it, it must be a bug...
mule,mule-studio,mule-component
The important part of the exception is: com.mulesoft.datamapper.exception.DataMapperRuntimeException The data mapping graph csv_to_list_transaction_c.grf does not exists To fix the issue, make sure that you are correctly packaging csv_to_list_transaction_c.grf in your WAR file. It should be at the root of the classpath, i.e. right under WEB-INF/classes....
<flow name="xmlsplitter" doc:name="xmlsplitter"> <file:inbound-endpoint path="C:/var/lib/data" doc:name="File"/> <file:file-to-string-transformer doc:name="File to String"/> <logger level="INFO" message="#[payload:]" doc:name="Logger" /> <foreach collection="#[xpath('//out:retrieveAllData')]" doc:name="For Each"> <set-variable doc:name="Variable" value="#[xpath('out:Designation/text()').wholeText]" variableName="id"/> <logger level="INFO" message="#[flowVars['id']]"...
In most cases, the way you did it should work. I think what is happening here is that the hyphen in the column name is interpreted by the MEL parser as a subtraction. So you could change yours to this syntax, and it should work: #[message.payload.get(0)['XML_F5RYI-11YTR']] Also you can omit...
mule,integration,mule-studio,mule-component
You should set the Basic Authentication value as a Header Property in to the outgoing Mule Message when you are consuming a REST service via the Mule HTTP outbound endpoint. <flow name="consume_rest"> ............. .......... <set-property propertyName="Authorization" value="Basic Authorization String combination of Username and password" /> <http:outbound-endpoint exchange-pattern="request-response" method="POST" responseTimeout="20000" host="localhost"...
mule,mule-studio,mule-el,mule-component
You can invoke the HTTP Inbound through Mule Client, here is an example: MuleClient muleClient = new MuleClient(muleContext); Map<String, Object> headers = new HashMap<String, Object>(1); headers.put("key", "456453N123"); MuleMessage result = muleClient.send("http://localhost:8081/prm", PAYLOAD, headers); The HTTP headers are in the inbound-scoped properties of the MuleMessage. To get the header from a...
jsp,mule,mule-studio,mule-component
You can use jetty:connector in mule as embedded Jetty Server, For example: <jetty:connector name="Jetty" doc:name="Jetty" doc:description="This is the conector to Jetty server"> <jetty:webapps port="8060" host="localhost" directory="${app.home}/webapps" /> </jetty:connector> inside webapps may have WEB-INF, jsp, images, css, js, etc. http://www.mulesoft.org/documentation/display/current/Jetty+Transport+Reference Hope it helps....
mule,mule-studio,mule-component,mule-cluster
Http components requires a static 'HTTP://' as the beginning of the URL hence the below works <http:outbound-endpoint exchange-pattern="request-response" method="GET" address="http://#[message.outboundProperties.'url'] " doc:name="HTTP"/> ...
This is caused by the Studio's classloading policies. The workaround is to copy the JDBC Driver .jar to ${studio.home}/plugins/org.mule.tooling.server.${mule.version}.ee_${mule.version}.${release.date}/mule/lib/user
I got answer..how to insert lookup data type record in salesforce through mule. Use recordId to store that value... Thanks...
smtp,mule,mule-studio,mule-component
can you please check below conditions in the smtp endpoint if the password contains any character that can be decoded, then specify the decoded password. test by giving from address with out @gmail.com 3.Specify the <email:string-to-email-transformer/> transformer <smtp:outbound-endpoint ...... doc:name="email-notification"> <email:string-to-email-transformer/> </smtp:outbound-endpoint> Hope this helps....
Through MEL, you can access a logger using #[org.apache.commons.logging.LogFactory.getLog(loggerName)] The Log interface does not contain any direct method to obtain its level, but you can know if a certain level is active or not. So you can use the following expression to obtain a logger level in MEL: #[log =...
mule,mule-studio,mule-el,mule-component,mule-cluster
The request-reply is just sending the received message to the request endpoint, and then blocking the current thread until a message arrives to the reply endpoint with a correlation id that matches the correlation id that was sent to the request endpoint. We can summarize it as a synchronous emulator...
mule,mule-studio,mule-component
Only if you build it using DevKit: http://www.mulesoft.org/documentation/display/current/Anypoint+Connector+DevKit You can add custom processors to a module that can be packaged and installed into Studio. ...
mule,mule-studio,mule-el,mule-component
On the community edition, VM endpoints a nothing more than a in-memory queue, they are very fast. To call a VM endpoint will be slightly slower than a flow-ref given that the hole transport mechanism is trigered. If you are calling a flow from a flow, and you are not...
You should either: use a service override to change the message receiver to change the call to connector.validateFile(file) for your own needs. instantiate our own inherited class of the connector using custom-connector, overridding the method validateFile(FTPFile file) with your own needs. ...
java,multithreading,mule,esb,mule-studio
I synchronize all methods in my class and solve the problem. Thanks everyone for assistance.
mule,mule-studio,mule-component
Do not use map-payload:: it's the old and deprecated expression evaluation language. Use MEL instead, ie: <db:parameterized-query><![CDATA[INSERT INTO table2 (ID, Company, Status) VALUES (#[message.payload[0].ID], #[message.payload[0].Company], #[message.payload[0].Status])]]> </db:parameterized-query> ...
cookies,http-headers,mule,mule-studio
I'm unsure why it does work the first time because it shouldn't. I assume you are checking using the "Oauth request" logger. If that is the case, please use a different client, it is working fine forme. However, JSESSIONID won't be sent to the secondary system unless you copy the...
mule,mule-studio,mule-el,mule-component
A "transport barrier" is when your Mule message goes through an endpoint that makes use of a transport (say for example, HTTP endpoints, JMS, TCP, VM, etc). There are two ways of calling flows in Mule: Via an endpoint. Via the Flow-Ref component. The first case makes use of transports,...
mule,mule-studio,mule-el,mule-component,mule-cluster
Mule ESB it's production ready. It is very common to find it directly exposed to internet (of course with the proper security measurements any kind of deployment should follow). Depending on the needs you could even find it behind nginx or apache proxies, behind MOM's and others....
ftp,mule,mule-studio,mule-component
You've got the transactions wrong: the VM outbound doesn't need to be transacted, it's the VM inbound that needs to in order to trigger redeliveries in case of FTP failures. <flow name="FTPFlow1" doc:name="FTPFlow1"> <set-payload doc:name="Set Payload" value="#[payload]"/> <vm:outbound-endpoint exchange-pattern="one-way" doc:name="VM" path="doProcess" /> </flow> <flow name="FTPFlow2" doc:name="FTPFlow2"> <vm:inbound-endpoint exchange-pattern="one-way" path="doProcessMessage" doc:name="VM">...
mule,mule-studio,mule-el,mule-component,mule-module-jpa
I'm using SQLserver express 2012. - Download the sqljdbc41.jar file from microsoft sqljdbc41.jar - Put the jar file into the Anypoint Studio Plugin directory (e.g C:\Program Files (x86)\AnypointStudio\plugins) - Using SQL configuration manager, goto SQL Server Network Configuration --> Protocols for SQLEXPRESS and enable TCP/IP protocol In AnyPoint studio (I'm...
The root cause of the error is: Error: null pointer or function not found: xpath3 So it's not related to the payload being a string at all but instead to the fact that Mule doesn't recognize xpath3 as a valid function. XPath 3 has been added to Mule 3.6.0 so...
I think here is your answer given :- Using an expression in a JMS Selector in Mule 3 And one more thing, you cannot use #[flowVars.reqId] for getting the jms:selector value dynamically since flow variable scope is limited to a flow ... instead use a session variable like #[sessionVars.reqId].. and...
mule,mule-studio,mule-component
With Anypoint Devkit 3.6, the "config-ref" attribute on elements became required, so you NEED to create a global element definition for your connector. As far as I know, there isn't a way to get around this at this point. HTH...
jms,mule,virtual-machine,esb,mule-studio
It's not likely, since your system would normally react way quicker than a user can submit requests. However, that may be the case during a load peak. To really ensure message order, you really need a single bottleneck (a single instance/thread) in your solution to handle all requests. That is,...
xml,xslt,mule,mule-studio,cloudhub
Need separate license to use these functions.I think you are using HE of Saxon.Get Enterprise Edition of Saxon
mule,mule-studio,mule-component
maxWaitMillis attribute in db pooling profile is the number of milliseconds a client calling getConnection() will wait for a Connection to be checked-in or acquired when the pool is exhausted. Zero means wait indefinitely. The other timeout value is the connection timeout which the amount of time a database connection...
Yes, the connector supports connection management, so the connection details can either be configured globally or dynamically per operation during a flow: <sqs:config name="sqs" region="USEAST1" /> <flow name="sqs" processingStrategy="synchronous"> <sqs:send-message config-ref="sqs" accessKey="#[flowVars.accessKey]" secretKey="#[flowVars.secretKey]" queueName="#[flowVars.queueName]" queueUrl="#[flowVars.queueUrl]" /> </flow> The only global parameter that needs to be set is the region....
mule,mule-studio,mule-el,mule-component,mule-module-jpa
suppose if the header name was "authToken" which contains the authentication token. it can be accessed in mule floe with below mel expression #[message.inboundProperties.authToken]
soap-client,mule-studio,mule-component
the first step of using web service-consumer was to drag the the web-service consumer component into to flow by defining required parameters like wsdl url. Then drag the datampper before the ws-consumer component which load the ws definition to the traget side of datamapper.
mule,mule-studio,mule-component,mule-el
Take a look here: https://github.com/mulesoft/mule-module-objectstore/blob/master/src/test/resources/mule-config.xml It has examples of retrieving object store values and putting them in variables. See the "retrieveVariable" flow. Alternatively you can wrap the retrieve in an enricher....