Ref.: O porquê disso!?

20 respostas
P

Alguém pode me escrerecer!?

O PORQUÊ DISSO;

[color=red]The serializable class ExtratoConta does not declare a static final serialVersionUID field of type long[/color]

NISSO;

package br.com.extratos;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class for Servlet: ExtratoConta
 *
 */
 public class ExtratoConta extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
    /* (non-Java-doc)
	 * @see javax.servlet.http.HttpServlet#HttpServlet()
	 */
	public ExtratoConta() {
		super();
	}   	
	
	/* (non-Java-doc)
	 * @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/html");
		
        PrintWriter out = response.getWriter();
        
        try {
            //Conecta Banco Dados
            Connection cnn = BancoDados.RetornaConexao(new ConexaoPadrao("D:\\Projetos\\Desenvolvimento\\SisPRS\\RHBProtese\\RHBProtese.Xml"));
        }
        out.println("<html><head><title>XXXXXXX--XXXXXXX</title></head>");
        out.println("<body>");
        
        System.out.println("<table border=\"1\" width=\"400\">");
        
    	out.println("<center>"); 
        out.println("<table border=\"1\" width=\"400\">"); 
        out.println("<caption>Extrato: < Nome do Cliente > </caption>"); 
        out.println("<tr>"); 
        out.println("  <td style=\"border-top: 1px solid black; font-weight: bold; text-align: center; color: red;\"> Novos Cadastros </td>"); 
        out.println("     <th> Outubro </th>"); 
        out.println("     <th> Novembro </th>"); 
        out.println("     <th> Dezembro </th>"); 
        out.println("</tr>"); 
        out.println(""); 
        out.println("<tr>"); 
        out.println("   <td> Alunos </td>"); 
        out.println("      <th> 10 </th>"); 
        out.println("      <th> 03 </th>"); 
        out.println("      <th> 16 </th>"); 
        out.println("</tr>"); 
        out.println(""); 
        out.println("<tr>"); 
        out.println("   <td> Professores </td>"); 
        out.println("      <th> 03 </th>"); 
        out.println("      <th> 07 </th>"); 
        out.println("      <th> 11 </th>"); 
        out.println("</tr>"); 
        out.println("</table>"); 
    	out.println("<p > XXXXXXXXXXXXXX</p>"); 
        out.println("<img  de programas\\Java\\eclipse\\Workspace\\ServicosTATO\\build\\web\\imagem\\logo.jpg\"  >"); 
    	out.println("&lt;/center&gt;"); 
        out.println("&lt;/body&gt;");
        out.println("&lt;/html&gt;");
        out.close();
    }  	  	  	    
}

20 Respostas

Y

Cara, se tu estás extendendo HttpServlet então por que estás implementando a interface Servlet?

Podes tirar aquele implements, pois todo HttpServlet É UM Servlet.

Herança, lembras?

Não entendo porque realmente está acontecendo isso aí, eu não sabia que uma classe, em algum momento, seria “obrigada” a ter um serialVersionUID.

RaulCarlin

É estranho mesmo, pois classes serializáveis que não contem um SUID explícito a JVM cria um para ela…

Será que isso não é um warning e não um erro de compilação?

JimMorrison

por acaso tah usando eclipse??? ele costuma reclama do serialVersionUID…
se for, é soh mandar ele gerar

esse parametro serve para garantir a versao da classe…

P

Na mosca!

Estou usando o Eclipse sim!

Meu problema é que estou tentando fazer minha primeira aplicação WEB.

Não sei muito sobre esse assunto.

Estou estudando muito (SOZINHO) tá Bravo!

Mas valeu.

Irei fazer isso.

P

Aproveitando o ensejo, pode me explicar o que na verdade é Serializar?

Valeu!

JimMorrison

Serializar é vc dizer pro java q um objeto daquela classe pode ser transportado… isso significa q, vc pode gravar o objeto no disco ou enviar para uma outra jvm por exemplo.

Para isso a classe deve implementar a interface Serializable… vc tah fazendo isso qdo extende a classe HttpServlet que por sua vez implementa Serializable.

P

Valeu!

Entendi !

Obrigado.

Agora pode me responder mais essa?

Onde coloco meu “classes12.zip” no Eclipse?

Está dando esse ERRO:

java.lang.NullPointerException
	at br.com.extratos.ExtratoConta.doGet(ExtratoConta.java:97)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
	at java.lang.Thread.run(Unknown Source)
hover

Se vc colocar ele nesta pasta WEB-INF\lib deve funcionar, caso contrário, configure ele no java build path do projeto (botão direito no projeto -> properties -> java build path -> libraries)

P

Coloquei nos dois lugares e, nada!

Não estou entendendo!

Me ajudem por favor, estou a duas semanas tentando resolveer isso.

Obrigado.

P

Me deculpe!

Copie para o diretório WEB-INF\lib e só depois que dei um REFRESH é que rolou!

Agora!

Gostaria que o mesmo ficasse como as outras lib´s, no
"projeto (botão direito no projeto -> properties -> java build path -> libraries) ".

Assim não funciona, PORQUE!?

P

Bom dia!

Em casa funcionou bem acessando uma base MySQL Remotamente colocando o simplesmente o mysql-connector-java-5.0.7-bin.jar em WEB-INF\lib (Gostaria que o mesmo ficasse em projeto -> properties -> java build path -> libraries).

Mas quando cheguei na Empresa e tentei fazer o mesmo com ORACLE (classes12.zip), nada funcionou.

Alguém pode me dizer o PORQUÊ DISSO!?

O ERRO continua sendo o mesmo.

SEVERE: Servlet.service() for servlet ExtratoConta threw exception
java.lang.NullPointerException
	at br.com.extratos.ExtratoConta.doGet(ExtratoConta.java:97)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
	at java.lang.Thread.run(Unknown Source)

[color=brown]Desde já agradeço a todos que estão me ajudando.[/color]

nbluis

o que que tem nessa linha?

ExtratoConta.java:97

P

Alinha está em evidência.

StringBuffer sbSQL = new StringBuffer()
		//ISSPROD
		.append("SELECT ReferISS.DAT_REF_ISS AS \"Data de Referência\", ")
		.append("       ReferISS.SIG_SIT_REF, ")
		.append("       ReferISS.DAT_INCLUSAO ")
		.append("FROM REFERENCIA_ISS ReferISS ");
		
      
        try {
            [b][color=darkred]PreparedStatement ps = cnn.prepareStatement(sbSQL.toString());[/color][/b]
            ResultSet rs = ps.executeQuery();
            
            while (rs.next()) {
                System.out.println(rs.getString("DAT_REF_ISS"));
           }
            
            rs.close();
            ps.close();
        } catch (SQLException errorSQL) {
            JOptionPane.showMessageDialog(null, errorSQL.getMessage(), "Erro SQL", JOptionPane.ERROR_MESSAGE);
            errorSQL.getMessage();
            errorSQL.printStackTrace();
        }
	}
P

[color=darkred]PreparedStatement ps = cnn.prepareStatement(sbSQL.toString());[/color]

Essa é a linha.

hover

Você verificou se a connection está sendo instanciada no no ambiente da sua empresa? Pode ser algum bug escondido na criação como usuario/senha de banco inválidos.

Falei isso pq o erro (null pointer) ocorre quando vc chama um método da connection, então ela pode estar nula.

Outra coisa, se vc puder, tente separar o acesso a base da Servlet!

P

Blz!
Separarei sim!

Isto é apenas um teste.

O Engraçado é que quando rodo esse mesmo treço numa aplica DESKTop no NetBeans, consigo ver os dados.

Muito estranho, né!?

A propósito: Tem algum exemplo disso que está me sugerindo?

Valeu.

hover

Você chegou a verificar se a connection está instanciada?

Vc quer exemplo de serparação da camada de Persistência?

P

Como disse antes, com o Netbeans esse mesmo código funciona. Acabei de testar denovo.

Quanto ao exemplo, se for possível, quero sim.

Obrigado!

hover

Qto ao seu problema com o projeto no eclipse, tô sem idéia do que vc possa fazer … tenta isolar o erro, debugando ou colocando logs.

Quanto ao exempo, da uma pesquisada sobre DAO, não sei se vc conhece, aqui tem um artigo.

A idéia geral é criar uma camada de acesso aos dados, sejam eles em um BD, arquivo, xml, etc. Dessa maneira, p/ camada de negócios e controle, qualquer alteração na camada de dados é transparente. Geralmente isso é feito utilizando uma Abstract Factory.

Caso seja novidade p/ vc, de uma pesquisada e qq duvida posta q eu tento te ajudar.

P

Pô cara!

Muito obrigado por tudo.

Irei estudar isso.

Quando a depuração já fiz isso tb. foi como disse, no Netbeans funciona na boa.

Mas valeu!

Criado 26 de setembro de 2007
Ultima resposta 28 de set. de 2007
Respostas 20
Participantes 6