Cara este erro significa que algum dos índices (1, 2, 3, 4 e/ou 5) recuperados dentro do while é inválido, ou seja, não existe.
Tente executar assim:
public List<Usuario> getListaUsuario() throws SQLException{
this.connection = ConnectionFactory.getInstance().getConnection();
List<Usuario> usuarios = new ArrayList<Usuario>();
try {
String query = "SELECT usuario_pkg.listarUsuario FROM DUAL";
this.statement = this.connection.prepareCall(query);
this.rs = this.statement.executeQuery();
while(rs.next()) {
Usuario usuario = new Usuario();
usuario.setIdUsuario(rs.getLong(1));
usuario.setNmUsuario(rs.getString(2));
usuario.setLogin(rs.getString(3));
usuario.setPassword(rs.getString(4));
usuario.setDtCriacao(rs.getDate(5));
usuarios.add(usuario);
}
} catch (Exception e) {
throw new SQLException(e.getMessage());
}
return usuarios;
}
Caso não funcione, verifique se o retorno da função é um cursor que permite recuperar os valores como você fez no while.