Ref.: O porquê disso!?

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;

[code]
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();
}  	  	  	    

}[/code]

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.

É 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?

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…

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.

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

Valeu!

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.

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)

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)

Coloquei nos dois lugares e, nada!

Não estou entendendo!

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

Obrigado.

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!?

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]

o que que tem nessa linha?

ExtratoConta.java:97

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();
        }
	}

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

Essa é a linha.

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!

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.

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

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

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!

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.