tshepang
tshepang

Reputation: 12459

How to make Mule 3 display full stack traces

I had an exception where I got this shortened trace:

Root Exception stack trace:
java.sql.SQLException: Invalid column name
    at oracle.jdbc.driver.OracleStatement.getColumnIndex(OracleStatement.java:3677)
    at oracle.jdbc.driver.OracleResultSetImpl.findColumn(OracleResultSetImpl.java:2749)
    at oracle.jdbc.driver.OracleResultSet.getString(OracleResultSet.java:494)
    + 3 more (set debug level logging or '-Dmule.verbose.exceptions=true' for everything)

I then put this in "log4j.properties" and it didn't help:

log4j.logger.org.mule=DEBUG

I also failed with the second suggestion (and I suspect I'm not doing it right):

$ ./mule -Dmule.verbose.exceptions=true

Upvotes: 4

Views: 6245

Answers (3)

Niwedita Ranjan
Niwedita Ranjan

Reputation: 11

By default Mule filters out some internal class references from stacktraces to produce a more readable output.you can follow the given link for proper understanding..https://docs.mulesoft.com/mule-user-guide/v/3.7/configuring-mule-stacktraces

Upvotes: 1

2ark0
2ark0

Reputation: 107

I know the question is more related about how to configure the verbose on exceptions in Mule Studio, but if you want to configure this directly in the Mule ESB server too, You can add wrapper.java.additional.n entries to the wrapper.conf file in the /conf directory under the Mule installation directory. This wrapper.conf contains all the parameters sent to Mule at start time:

i.e. wrapper.java.additional.6=-Dmule.verbose.exceptions=true

Just make sure the index of the wrapper.java.additional. parameter is not used for other one.

To pass the arguments at the command line by adding the -M switch.

i.e. MULE_HOME/bin/mule -M-Dmule.verbose.exceptions=true

For Anypoint Studio Deployment:

Right click on the Project Root in Studio, select "Run As" -> "Run Configuration" -> "Argument" tab, append the arguments in the VM arguments window,

i.e.  -XX:PermSize=128M -XX:MaxPermSize=256M -Dmule.verbose.exceptions=true

For Running Mule as Maven application:

You can pass the command line argument as

i.e. mvn package -Dmule.verbose.exceptions=true

For Cloudhub Deployment:

You can pass the command line argument by adding them as Properties in the Deployment -> Settings -> Properties section

Upvotes: 0

David Dossot
David Dossot

Reputation: 33413

As explained here, arguments are passed from the command line to Mule that way:

$ ./mule -M-Dmule.verbose.exceptions=true

ie. prefixed by -M.

Upvotes: 8

Related Questions