Lacking a code snippet (it would be helpful if you can post it) we can only speculate about possible causes. One thing to point out with inout parameters is that you need to both set input values for them, statement.setX(n,value) and register them as output parameters, statement.registerOutParameter(n,type) each time they are used. Refer to this link from Oracle JDBC documentation for a more complete example:
http://docs.oracle.com/javadb/10.10.1.2/ref/rrefjdbc75719.html
You will also want to be aware the WebSphere Application Server data sources cache CallableStatements by default (upon CallableStatement.close), which involves invoking the CallableStatement.clearParameters which has the effect of clearing the parameter values and releasing resources held by them. It is possible that it might also clear the registration of out parameters. To experiment with disabling the statement cache, configure statementCacheSize=0 on the data source. Alternately, if using JDBC 4.0 or higher, an individual statement can be made non-cacheable via CallableStatement.setPoolable(false). To be clear, I'm not recommending disablement of statement caching as a solution, only as an experiment to help you narrow down the cause.