Problema Oracle com Tomcat - Erro na aplicação java

6 respostas
D

Boa noite a todos ! Primeiramente gostaria de dizer que esse é meu primeiro tópico e, antes de receber alguma bronca, informo que me esgotei no forum desde quinta-feira e não consegui nada que pudesse resolver esse problema. Sei que é desagradável, mas é importante para saberem que não fiquei com essa dúvida e vi direto postar isso aqui.

Minha dúvida:

No estágio me passaram uma aplicação simples para desenvolver, lá eles tem um servidor de desenvolvimento para subir os war e o banco de homologação e funciona tudo bonitinho. Porém, como um estagiário esforçado (rs) estou trazendo serviço para casa. Aqui uso eclipse como IDE e Tomcat, porém aqui não consigo fazer uma consulta no banco Oracle.

Bom, a aplicação é a mesma por isso não há nenhum erro nos codigo dos servlet, jsp e classes de conexão, até porque faço os testes da consulta por uma classe main e funciona certinho, porém, quando jogo a aplicação no tomcat a consulta não traz nada e, estranhamente, não traz nenhum erro, apenas a lista da minha consulta vazia.

Como disse, fiquei esses dias no fórum pesquisando coisas que pudesse resolver esse problema, achei algo sobre datasource no fórum mas segui o passo-a-passo e não houve nenhum sucesso. E não sei o que pode ser. Há alguma configuração diferente de uma consulta de banco desktop para uma web com tomcat ?

Conexao.java
public class Conexao {

	public static Conexao getInstance(){
		return new Conexao();
	}
public Connection getConnection() throws Exception{
			
		String url= PropertiesReader.getValueByPropertie("banco.url","db.properties");
		String usuario= PropertiesReader.getValueByPropertie("banco.usuario","db.properties");
		String senha=PropertiesReader.getValueByPropertie("banco.senha","db.properties");
		String driverName = PropertiesReader.getValueByPropertie("banco.driver","db.properties");
		Class.forName(driverName);	
		return DriverManager.getConnection(url, usuario, senha);
	}
	
	
	public void closedConnection(Connection conn,ResultSet rs,PreparedStatement stmt){
		
		
		try {
			if(conn!=null){
				conn.close();
			}
				if(rs!=null){
					rs.close();
				}
					if(stmt!=null){
						stmt.close();
					}
						} catch (Exception e) {
							e.printStackTrace();
						}
		}
}
DAO.java
public class FaturadoPreviaDAO {

	public ArrayList<ListarMesAnoFaturado> listaMesAnoFaturado(){

		ArrayList<ListarMesAnoFaturado> listaConsulta = new ArrayList<ListarMesAnoFaturado>();

		Connection conn = null;
		PreparedStatement stmt = null;
		ResultSet rs = null;

		String query = "SELECT DISTINCT TO_CHAR(EMISSAO,'MM')||'/'||TO_CHAR(EMISSAO,'YYYY') MESANO,TO_CHAR(EMISSAO,'MM') MES,TO_CHAR(EMISSAO,'YYYY')ANO FROM TBL_FATURADA_DANILO ORDER BY 1 ASC";

		try{

			Conexao conexao = Conexao.getInstance();
			conn = conexao.getConnection();
			stmt = conn.prepareStatement(query.toString());
			rs = stmt.executeQuery();

			while(rs.next()){
				
				ListarMesAnoFaturado l1 = new ListarMesAnoFaturado();
				l1.setMesAno(rs.getString("MESANO"));
				l1.setMes(rs.getString("MES"));
				l1.setAno(rs.getString("ANO"));
				listaConsulta.add(l1);

			}

			// Fechando conexão,Stament e ResultSet.
			conexao.closedConnection(conn, rs, stmt);	

		}catch(Exception e){
			e.printStackTrace();
		} 

		return listaConsulta;
	}
Command.java
ArrayList<FaturadoPrevia> listaFatuPrev = new ArrayList<FaturadoPrevia>();;
		
			listaFatuPrev = dao.getPreviaFaturado(mesAnoFat, cicloAnoPrev);
			request.setAttribute("listaFatuPrev", listaFatuPrev);
web.xml
<servlet>
	<servlet-name>controlerServlet</servlet-name>
	<servlet-class>meuPacote.ControllerPrincipal</servlet-class>
</servlet>

<servlet-mapping>
	<servlet-name>controlerServlet</servlet-name>
	<url-pattern>/principal</url-pattern>
</servlet-mapping>

  
</web-app>

6 Respostas

marcosharbs

Estranho pois funciona quando você roda o código no main.
Eu já tive problema de instalar o oracle e o tomcat e os dois
usarem a mesma porta e ai um deles não levantava.
Talvez isso esteja acontecendo com você e o programa
esteja mascarando algum erro em vez de explodir na tela.
Já tentou debugar?

D

Opa Marcos obrigado por responder.

Então cara, não estão usando a mesma porta, o oracle usa a 8080 e o tomcat está com a 8888.

R

danbgg:
Opa Marcos obrigado por responder.

Então cara, não estão usando a mesma porta, o oracle usa a 8080 e o tomcat está com a 8888.

Pra ter certeza faz um teste, pare o servico do oracle, e suba o tomcat, e acesse localhost:8080 e veja se vai aparecer alguma coisa, se sim, provavelmente poderá ser erro de porta.

D

Então cara, fiz o que pediu: Parei o serviço do Oracle, mudei no server.xml (tomcat) a porta para 8080 e iniciei o tomcat e rodei aplicação, cara, ficou a mesma coisa. Não veio nada na consulta e nenhum erro. Juro pra vc, quando faço via classe main a consulta vem certinha (Claro com oracle rodando).

R

estranho d+, vou ver se acho alguma coisa sobre isso, qualquer coisa eu posto aqui.

V

Você esta tentando rodar a aplicação pelo eclipse né ? Eu creio que o tomcat do eclipse esta na porta 8080, tenho quase certeza, faça o teste parando o tomcat do eclipse e iniciando o que está na sua maquina.

Criado 27 de janeiro de 2013
Ultima resposta 29 de jan. de 2013
Respostas 6
Participantes 4