Você está no caminho certo com o nº 2, mas não pode criar um array oracle a partir de uma conexão do tipo java.sql.Connection. Tem que ser um OracleConnection para poder usar esses métodos.
oracle.jdbc.OracleDriver ora = new oracle.jdbc.OracleDriver();
java.sql.Connection conn = ora.defaultConnection();
OracleConnection oraConn = conn.unwrap(OracleConnection.class);
oracle.sql.ARRAY widgets = oraConn.createARRAY("widgets_t", elements);