Calling an Oracle stored procedure from a java app with cursor as input

I have a procedure like

PROCEDURE some_proc (cur_in            IN     req_curtype,
                 id_out           OUT NUMBER,
                 str_out      OUT VARCHAR)
    IS

And then it does some select stuff and returns number and some string.

I am trying to call this like so:

    SimpleJdbcCall simpleJdbcCall = new SimpleJdbcCall(ds)
        .withSchemaName("SCHEMA")
        .withCatalogName("PKG")
        .withProcedureName("some_proc");

    SqlParameterSource in = new MapSqlParameterSource()
        .addValue("cur_in", "test");

    Map simpleJdbcCallResult = simpleJdbcCall.execute(in);
    System.out.println(simpleJdbcCallResult);

I am not sure how to pass in the "req_curtype" which is actually a REF CURSOR. I've seen java.sql.CallableStatement and java.sql.Ref but I am not sure how to tie them to any concrete values.

And also when I run this with a string in there I get an error like

Error : 6550, Position : 6, Sql = BEGIN OMR.OMR_PKG.TAKE_N_PROC_REQUEST_CSV(:1 , :2 , :3 ); END;, OriginalSql = {call SCHEMA.PKG.SOME_PROC(?, ?, ?)}, Error Msg = ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'SOME_PROC'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored

As if it's wanting me to specify inputs even for the "out" parameters. I thought those would be put in the resulting "Map" as keys to whatever the values they contained are.