If you would like to use output parameters in stored procedures, you have to register these parameters with "registerOutParameter". You do not have to initialize the parameter with a value, because it is a output parameter.
If you would like to reuse a stored procedure, a common pattern is to call "clearParameters" to get rid of any input parameter value. After the "clearParameters" you have to set an explicit value for the output parrameter. Otherwise you will get an expception eg "Caused by: java.sql.SQLTransientConnectionException: (conn=5) Parameter at position 2 is not set". That's wrong.