Pessoal,
Tenho uma aplicação que estou desenvolvendo no Eclipse / Lomboz. Quando eu rodo através do Lomboz ela funciona perfeitamente. Quando eu exporto o .WAR para o WebApps do TomCat, não rola de jeito maneira. Quando chama algum Servlet, ele fica em tela branca… Será que alguém sabe o que pode ser?!?
Grato!
Você reiniciou o servidor?
Tente colocar a pasta do projeto direto em webapps,ao invés de gerar o .war
Então… Eu consegui encontrar o log do servidor…
Tá dando o seguinte erro:
java.sql.SQLException: ORA-06576: não é um nome de função ou procedimento válido
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)
at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:215)
at oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableStatement.java:954)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1169)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3285)
at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3390)
at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:4223)
at model.Unidades.pesquisaUnidades(Unidades.java:32)
at controller.UnidadesServlet.consultarLista(UnidadesServlet.java:104)
at controller.UnidadesServlet.performTask(UnidadesServlet.java:62)
at controller.UnidadesServlet.doPost(UnidadesServlet.java:37)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
O engraçado é que quando eu rodo no Lomboz, ele funciona!!!
A chamada da procedure:
cstmt = (OracleCallableStatement) conn.prepareCall("{call PK_WMS_CE_UNIDADE.SP_WMS_CE_CONS_UNIDADE(?,?,?,?)}");
cstmt.setInt(1, unidade.getIdUnidade());
cstmt.setString(2, unidade.getDsUnidade());
cstmt.registerOutParameter(3, OracleTypes.CURSOR);
cstmt.registerOutParameter(4, Types.VARCHAR);
cstmt.execute();
rs = (ResultSet)cstmt.getObject(3);
A minha procedure:
procedure SP_WMS_CE_CONS_UNIDADE (p_id_unidade in usr_rtwms.tb_wms_ce_unidade.id_unidade%type,
p_ds_unidade in usr_rtwms.tb_wms_ce_unidade.ds_unidade%type,
p_cursor out refcur,
p_mensagem out varchar2) is
v_id_unidade usr_rtwms.tb_wms_ce_unidade.id_unidade%type;
Begin
if p_id_unidade = 0 then
v_id_unidade := null;
else
v_id_unidade := p_id_unidade;
end if;
open p_cursor for
select id_unidade, ds_unidade
from usr_rtwms.tb_wms_ce_unidade
where (v_id_unidade is null or id_unidade = v_id_unidade)
and (p_ds_unidade is null or ds_unidade like upper(p_ds_unidade) || ‘%’);
–
Exception
When Others Then
rollback;
p_mensagem := ‘Problemas ao acessar a Procedure SP_WMS_CE_CONS_UNIDADE’ || sqlerrm;
end SP_WMS_CE_CONS_UNIDADE;
Funciona perfeitamente no Lomboz Eclipse, porém, quando eu gero o .WAR e tento rodar no TomCat, ele me devolve esse erro!!!
Então, seguinte… Encontrei o problema… Na chamada da procedure, estou tendo que colocar o usuário “dono” dela, ou seja:
cstmt = (OracleCallableStatement) conn.prepareCall("{call USR_TESTE.PK_WMS_CE_UNIDADE.SP_WMS_CE_CONS_UNIDADE(?,?,?,?)}");
Mas, alguém saberia me dizer o pq disso?!? Pq q no lomboz eu não preciso colocar e quandp exporto-o para o TomCat ele dá esse erro?!?
Obrigado.