Montando um ambiente utilizando Tomcat + Java + MySQL (Debian)

Como a maioria de meus artigos, venho compartilhar a experiência adquirida na tentativa de executar determinada tarefa quando não encontro um artigo que mostre os passos de forma simples para a execução. Neste mostrarei como montar um ambiente que hospede um site em Java no Debian.

[ Hits: 52.971 ]

Por: Geraldo José Ferreira Chagas Júnior em 30/06/2009 | Blog: http://prginfo.blogspot.com


Conectando ao MySQL



Vamos começar de forma diferente esse item. Começaremos criando o código para acessar as tabelas MySQL e em seguida iremos corrigindo os erros conforme forem aparecendo.

Considerarei que o MySQL acabou de ser instalado, logo encontra-se sem banco, tabelas, senha etc.

Criando a senha do root como 123456:

# mysqladmin -u root password 123456

Entrando no MySQL:

# mysql -u root -p

Basta digitar a senha criada.

Confirmando se existe banco de dados criado:

mysql> show databases;

Se aparecer empty é porque está vazio.

Criando o banco de dados DBTeste:

mysql> create database dbTeste;

Confirmando se criou:

mysql> show databases;
+-------------------------+
| Database                |
+-------------------------+
| dbTeste                 |
+-------------------------+

Acessando o banco:

mysql> use dbTeste;

Criando uma tabela (tbTeste) com apenas um registro (codteste) para podermos testar.

mysql> create table tbTeste (codteste integer);

Verificando se a tabela foi criada:

mysql> show tables;
+-------------------+
| Tables_in_dbTeste |
+-------------------+
| tbTeste           |
+-------------------+

Inserindo registros na tabela:

mysql> insert into tbTeste (codteste) value (1);
mysql> insert into tbTeste (codteste) value (7);
mysql> insert into tbTeste (codteste) value (17);
mysql> insert into tbTeste (codteste) value (37);

Listando para saber se os registros realmente foram inseridos de forma correta:

mysql> select * from tbTeste;
+----------+
| codteste |
+----------+
|        1 |
|        7 |
|       17 |
|       37 |
+----------+

Beleza, nossa base está pronta para ser usada. Vamos sair:

mysql> exit;

Agora criaremos nosso código em Java para testarmos a conexão com a base de dados.

Crie um arquivo com o nome OlaBase.java, em qualquer diretório, apenas para teste, e inclua o conteúdo a seguir.

import java.sql.*;
public class OlaBase
{
   public static void main (String args[])
   {
      String url  = "jdbc:mysql://localhost:3306/dbTeste"; //string de conexão a base dbTeste
      String user = "root";  //usuário da base de dados
      String pwd  = "123456";//senha do usuário criado
      try
      {
         Class.forName("com.mysql.jdbc.Driver");
         System.out.println("\nDriver carregado com sucesso!!!\n");
         try
         {
            Connection cn = DriverManager.getConnection(url, user, pwd);
            System.out.println("\nConexao estabelecida!!!\n");
            String sql = "select * from tbTeste";
            Statement stm = cn.createStatement();
            try
            {
               ResultSet rs = stm.executeQuery(sql);
               while (rs.next())
               {
                  System.out.println("\n" + rs.getString("codteste") + "\n");
               }
            }
            catch (Exception ex)
            {
               System.out.println("\nErro no Select!!!\n");
            }
         }
         catch (Exception ex)
         {
            System.out.println("\nErro na conexao!!!\n");
         }
      }
      catch (ClassNotFoundException ex)
      {
         System.out.println("Erro na conexao com a base de dados!!!");
         ex.printStackTrace();
      }
      catch (Exception ex)
      {
         System.out.println("Driver nao pode ser carregado!!!");
      }
      System.out.println("Olá Base!!!");
   }
}

Agora vamos compilar:

# javac OlaBase.java

Tudo deverá ocorrer OK. Então, vamos executar:

# java OlaBase

Deverá aparecer a seguinte saída:

Erro na conexao com a base de dados!!!

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:164)
        at OlaBase.main(OlaBase.java:11)
Ola Base!!!

Vimos nesta saída que o driver não foi encontrado (ClassNotFoundException: com.mysql.jdbc.Driver).

Então vamos instalar o driver para MySQL.

Primeiro vamos ver se ele existe em nossa máquina:

# find / -name "mysql-connect*"

Se não retornar nenhum arquivo, vamos à instalação de driver. Vamos ver se existe algum pacote para podermos instalarmos via apt-get:

# apt-cache search jdbc

Aparecerá a seguinte lista de pacotes:

haskell-hsql-doc - Multi-Database Interface System for Haskell
henplus - JDBC SQL commandline frontend with TAB-completion
hsqldb-server - Java SQL database server
libghc6-hdbc-dev - Haskell Database Connectivity, GHC6 package
libghc6-hsql-dev - Multi-Database Interface System for Haskell
libghc6-hsql-mysql-dev - Multi-Database Interface System for Haskell
libghc6-hsql-odbc-dev - Multi-Database Interface System for Haskell
libghc6-hsql-postgresql-dev - Multi-Database Interface System for Haskell
libghc6-hsql-sqlite-dev - Multi-Database Interface System for Haskell
libghc6-hsql-sqlite3-dev - Multi-Database Interface System for Haskell
libhsqldb-java - Java SQL database engine
libhsqldb-java-doc - documentation for HSQLDB
libhugs-hdbc - Haskell Database Connectivity, Hugs package
liblog4j1.2-java - Logging library for java
libmysql-java - Java database (JDBC) driver for MySQL
libodbc++-dev - C++ library for ODBC SQL database access
libodbc++-doc - C++ library for ODBC SQL database access
libodbc++4 - C++ library for ODBC SQL database access
libpg-java - Java database (JDBC) driver for PostgreSQL
libpgjava - Java database (JDBC) driver for PostgreSQL - transitional package
libpostgis-java - geographic objects support for PostgreSQL -- JDBC support
libsapdbc-java - JDBC interface to the MaxDB database system
libstruts1.2-java - Java Framework for MVC web applications
openoffice.org-base - OpenOffice.org office suite - database
postgresql-contrib-7.4 - additional facilities for PostgreSQL

No nosso caso queremos a "libmysql-java - Java database (JDBC) driver for MySQL". Então vamos instalar:

# apt-get install libmysql-java

Após a instalação vamos conferir se o arquivo .jar passou a existir:

# find / -name "mysql-connect*"

Agora aparecerá o arquivo, no meu caso o resultado da busca foi:

/usr/share/java/mysql-connector-java-5.0.4.jar

Então basta colocar esse arquivo no classpath:

# export CLASSPATH=$CLASSPATH:"/usr/share/java/mysql-connector-java-5.0.4.jar"

Agora tente executar o nosso programa.

# java OlaBase

O resultado será:

Driver carregado com sucesso!

Conexao estabelecida!!!

1

7

17

37

Ola Base!!!

Pronto, a conexão com a base de dados foi estabelecida.

Claro que a variável CLASSPATH não valerá quando reiniciarmos a máquina. Mas para resolver o problema, basta adicionar a linha no final do arquivo /etc/profile:

echo "export CLASSPATH=\$CLASSPATH:"/usr/share/java/mysql-connector-java.jar"" >> /etc/profile

Agora vamos voltar ao nosso arquivo index.jsp no diretório /var/www/teste e vamos fazer a alteração abaixo, para conectar à base de dados. Basta incluir no final de nosso arquivo o código:

<%
  try
  {
     Class.forName("com.mysql.jdbc.Driver");
     out.println ("<br>Driver encontrado!!!");
  }
  catch (ClassNotFoundException ex)
  {
     out.println ("<br>Erro driver<br>");
     out.println (ex.toString());
  }
  catch (Exception ex)
  {
     out.println ("<br>Erro ao procurar o driver<br>" + ex.toString());
  }
%>

Salve o arquivo e em seu browser, acesse a URL:

http://localhost:8180/teste

Aparecerá a página:

Olá mundo !!!
1 + 1 = 2

Erro driver
java.lang.ClassNotFoundException:com.mysql.jdbc.Driver

Mas como o driver é encontrado em nossa aplicação e não é encontrado em nossa página? O motivo é que nossa aplicação procura pelo CLASSPATH, já as páginas são limitadas a buscar no diretório padrão ou no diretório de nosso projeto.

Então basta copiar o arquivo com o driver para o diretório <CATALINA_HOME>/common/lib, porém aqui iremos apenas criar um link simbólico para o arquivo:

# cd /usr/share/tomcat5.5/common/lib
# ln -s ../../../java/mysql-connector-java-5.0.4.jar mysql-connector-java.jar


Reinicie o Tomcat:

# /etc/init.d/tomcat5.5 restart

Tente novamente acessar a URL:

http://localhost:8180/teste

Desta vez o resultado será:

Olá mundo !!!
1 + 1 = 2

Driver encontrado!!!

Vamos continuar nosso exemplo de teste, aumentando o código.

Edite novamente o arquivo /var/www/teste/index.jsp.

Agora vamos modificá-lo deixando com o seguinte código:

<%@page import="java.sql.*"%>
Olá mundo !!!<br>
1 + 1 = ${1+1}
<br>

<%
      String url  = "jdbc:mysql://localhost:3306/dbTeste"; //string de conexão a base dbTeste
      String user = "root";  //usuário da base de dados
      String pwd  = "123456";//senha do usuário criado
      try
      {
         Class.forName("com.mysql.jdbc.Driver");
         out.println("<br>Driver carregado com sucesso!!!<br>");
         try
         {
            Connection cn = DriverManager.getConnection(url, user, pwd);
            out.println("<br>Conexao estabelecida!!!<br>");
            String sql = "select * from tbTeste";
            Statement stm = cn.createStatement();
            try
            {
               ResultSet rs = stm.executeQuery(sql);
               while (rs.next())
               {
                  out.println( " - " + rs.getString("codteste"));
               }
            }
            catch (Exception ex)
            {
               out.println("<br>Erro no Select!!!<br>" + ex.printStackTrace());
            }
         }
         catch (Exception ex)
         {
            out.println("<br>Erro na conexao!!!<br>" + ex.printStackTrace());
         }
      }
      catch (ClassNotFoundException ex)
      {
         out.println("<br>Erro na conexao com a base de dados!!!<br>" + ex.printStackTrace());
      }
      catch (Exception ex)
      {
         out.println("<br>Driver nao pode ser carregado!!!<br>" + ex.printStackTrace());
      }
      out.println("<br>Olá Base!!!<br>");
   }

%>

Ao acessarmos a URL http://localhost:8081/teste nos depararemos com a seguinte mensagem:

Olá mundo !!!
1 + 1 = ${1+1}

Erro na conexão

com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception: ** BEGIN NESTED EXCEPTION ** ...

Felizmente, se tudo correu bem até aqui, esse será nosso último erro.

Teremos que liberar a permissão de conexão.

As permissões estão definidas no arquivo $CATALINA_BASE/conf/catalina.policy, neste caso em /usr/share/tomcat5.5/conf/catalina.policy.

Seria só alterar esse arquivo, mas se verificarmos nosso daemon (/etc/init.d/tomcat5.5) veremos que este arquivo e montado na inicialização do tomcat, pois encontraremos a seguinte linha:

cat /etc/tomcat5.5/policy.d/*.policy \
                        >> "$CATALINA_BASE/conf/catalina.policy"

Ou seja, não adianta modificar o arquivo /usr/share/tomcat5.5/conf/catalina.policy, pois quando iniciarmos o Tomcat esse arquivo será refeito. Na inicialização o conteúdo do arquivo "$CATALINA_BASE/conf/catalina.policy" é substituído pelo conteúdo de todos os arquivos ".policy" do diretório /etc/tomcat5.5/policy.d/. Então a linha abaixo nós poderemos incluir dentro de um arquivo ".policy" do diretório /etc/tomcat5.5/policy.d/ ou, o que acho mais organizado, criar um arquivo.

Crie um arquivo /etc/tomcat5.5/policy.d/05teste.policy. Inclua o seguinte conteúdo:

grant codeBase "file:/var/www/teste/-" {
    permission java.security.AllPermission;
};

Com esse conteúdo você faria todas as liberações para sua aplicação. O mais seguro é ir liberando as permissões a medida que forem aparecendo as necessidades, então sugiro substituir o conteúdo do arquivo por:

grant codeBase "file:/var/www/teste/-" {
    permission java.net.SocketPermission "localhost:3306", "connect,resolve";
};

Assim liberaremos apenas a conexão com o MySQL.

Agora basta reiniciarmos o Tomcat:

# /etc/init.d/tomcat5.5 restart

e testarmos nossa aplicação acessando a URL:

http://localhost:8180/teste

Deverá aparecer o seguinte conteúdo:

Olá mundo !!! 1 + 1 = 2

Driver carregado com sucesso!!!

Conexao estabelecida!!!

- 1

- 7

- 17

- 37

Página anterior    

Páginas do artigo
   1. Ferramentas necessárias
   2. Instalação das ferramentas
   3. Configurando o Tomcat
   4. Criando nossa aplicação para teste
   5. Conectando ao MySQL
Outros artigos deste autor

Vírus de computador e criação de um vírus em C/C++ (parte 1 - básico)

Instalando e configurando o aMule (Debian)

X Window, Controladores de Janelas e Ambientes Desktop

Linvox - Sistema Linux voltado para deficientes visuais

Inicialização e interrupção do sistema (Debian)

Leitura recomendada

Gerando arquivos JAR com o Eclipse

Manipulando erros com try catch finally

Introdução ao Swing (parte 1)

Máquina Virtual Java (Java Virtual Machine)

Introdução ao Java - Hello World

  
Comentários
[1] Comentário enviado por michel5670 em 30/06/2009 - 21:33h

Colega muito bom seu artigo veio em boa hora pois eu estava com dificuldades de instalar e configurar o debian,seu artigo está muito bem explicado e com um assunto de interesse de uma grande maioria prova disso e o artigo acabar de ser postado e ja ter mais de 150 acessos Parabéns!!!

[2] Comentário enviado por maran em 01/07/2009 - 08:51h

Caracas Geraldo,
eu ainda não tinha visto um artigo do genero, sobre Tomcat integrado ao MySQL, muito bom!
Bem explicado, e de grande valia a muito, isso ae, show de bola,
Abraços

[3] Comentário enviado por gjr_rj em 01/07/2009 - 09:27h

Olá pessoal, venho informar que o artigo se encontra pela metade, está faltando informações. Vou avisar a equipe de moderadores do VOL.

[4] Comentário enviado por gjr_rj em 01/07/2009 - 09:42h

Pedi para incluirem o restante do arquivo, mas enquanto isso não acontece, estou colocando aqui. Seria incluido no link 5 "Conectando ao Mysql", no final.

-----------------------------------------------

Salve o arquivo e em seu browser, acesse a url hocalhost:8180/teste

Aparecerá a página:

Olá mundo !!!
1 + 1 = 2

Erro drive
java.lang.ClassNotFoundException:com.mysql.jdbc.Driver

Mas como o drive é encontrado em nossa aplicação e não é encontrado em nossa página ? O motivo é que nossa aplicação procura pelo CLASSPATH já as páginas tem é limitada a buscar no diretório padrão ou no diretório de nosso projeto.

Então, basta copiar o arquivo com o drive para o diretório <CATALINA_HOME>/common/lib, porém aqui iremos apenas criar um link simbólico para o arquivo.

# cd /usr/share/tomcat5.5/common/lib
# ln -s ../../../java/mysql-connector-java-5.0.4.jar mysql-connector-java.jar

Reinicie o tomcat
# /etc/init.d/tomcat5.5 restart

Tente novamente acessar a URL localhost:8180/teste
Desta vez o resultado será:

Olá mundo !!!
1 + 1 = 2

Drive encontrado!!!

Vamos continuar nosso exemplo de teste, aumentando o código.
Edite novamente o arquivo /var/www/teste/index.jsp

Agora, vamos modificá-lo deixando com o seguinte código:

<%@page import="java.sql.*"%>
Olá mundo !!!<br>
1 + 1 = ${1+1}
<br>

<%
String url = "jdbc:mysql://localhost:3306/dbTeste"; //string de conexão a base dbTeste
String user = "root"; //usuário da base de dados
String pwd = "123456";//senha do usuário criado
try
{
Class.forName("com.mysql.jdbc.Driver");
out.println("<br>Drive carregado com sucesso!!!<br>");
try
{
Connection cn = DriverManager.getConnection(url, user, pwd);
out.println("<br>Conexao estabelecida!!!<br>");
String sql = "select * from tbTeste";
Statement stm = cn.createStatement();
try
{
ResultSet rs = stm.executeQuery(sql);
while (rs.next())
{
out.println( " - " + rs.getString("codteste"));
}
}
catch (Exception ex)
{
out.println("<br>Erro no Select!!!<br>" + ex.printStackTrace());
}
}
catch (Exception ex)
{
out.println("<br>Erro na conexao!!!<br>" + ex.printStackTrace());
}
}
catch (ClassNotFoundException ex)
{
out.println("<br>Erro na conexao com a base de dados!!!<br>" + ex.printStackTrace());
}
catch (Exception ex)
{
out.println("<br>Drive nao pode ser carregado!!!<br>" + ex.printStackTrace());
}
out.println("<br>Olá Base!!!<br>");
}

%>

Ao acessarmos a URL localhost:8081/teste nos depararemos com a seguinte mensagem:

Olá mundo !!!
1 + 1 = ${1+1}

Erro na conexão

com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception: ** BEGIN NESTED EXCEPTION ** java.security.AccessControlException MESSAGE: access denied (java.net.SocketPermission localhost resolve) STACKTRACE: java.security.AccessControlException: access denied (java.net.SocketPermission localhost resolve) at java.security.AccessControlContext.checkPermission(AccessControlContext.java:264) at java.security.AccessController.checkPermission(AccessController.java:427) at java.lang.SecurityManager.checkPermission(SecurityManager.java:532) at java.lang.SecurityManager.checkConnect(SecurityManager.java:1031) at java.net.InetAddress.getAllByName0(InetAddress.java:1134) at java.net.InetAddress.getAllByName(InetAddress.java:1072) at java.net.InetAddress.getAllByName(InetAddress.java:1008) at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:138) at com.mysql.jdbc.MysqlIO.(MysqlIO.java:277) at com.mysql.jdbc.Connection.createNewIO(Connection.java:2668) at com.mysql.jdbc.Connection.(Connection.java:1531) at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266) at java.sql.DriverManager.getConnection(DriverManager.java:525) at java.sql.DriverManager.getConnection(DriverManager.java:171) at org.apache.jsp.index_jsp._jspService(index_jsp.java:65) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:243) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAsPrivileged(Subject.java:517) at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:275) at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:161) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:245) at org.apache.catalina.core.ApplicationFilterChain.access$0(ApplicationFilterChain.java:177) at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:156) at java.security.AccessController.doPrivileged(Native Method) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:152) 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(Thread.java:595) ** END NESTED EXCEPTION ** Last packet sent to the server was 52 ms ago.

Felizmente, se tudo correu bem até aqui, esse será nosso último erro.

Teremos que liberar a permissão de conexão.

As permissões estão definidas no arquivo "$CATALINA_BASE/conf/catalina.policy", neste caso em /usr/share/tomcat5.5/conf/catalina.policy.

Seria só alterar esse arquivo, mas se verificarmos nosso daemon (/etc/init.d/tomcat5.5), veremos que este arquivo e montado na inicialização do tomcat, pois encontraremos a seguinte linha:

cat /etc/tomcat5.5/policy.d/*.policy \
>> "$CATALINA_BASE/conf/catalina.policy"

Ou seja, não adianta modificar o arquivo /usr/share/tomcat5.5/conf/catalina.policy, pois quando iniciarmos o tomcat esse arquivo será refeito. Na inicialização, o conteúdo do arquivo "$CATALINA_BASE/conf/catalina.policy" é substituindo pelo conteúdo de todos os arquivos ".policy" do diretório /etc/tomcat5.5/policy.d/. Então, a linha abaixo nós poderemos incluir dentro de um arquivo ".policy" do diretório /etc/tomcat5.5/policy.d/ ou, o que acho mais organizado, criar um arquivo.

Crie um arquivo /etc/tomcat5.5/policy.d/05teste.policy. Inclua o seguinte conteúdo:

grant codeBase "file:/var/www/teste/-" {
permission java.security.AllPermission;
};

Com esse conteúdo, você faria todas as liberações para sua aplicação. O mais seguro é ir liberando as permissões a medida que forem aparecendo as necessidades, então, sugiro substituir o conteúdo do arquivo por

grant codeBase "file:/var/www/teste/-" {
permission java.net.SocketPermission "localhost:3306", "connect,resolve";
};

Assim, liberaremos apenas a conexão com o mysql.

Agora, basta reiniciarmos o tomcat

# /etc/init.d/tomcat5.5 restart

e testarmos nossa aplicação acessando a URL localhost:8180/teste

deverá aparecer o seguinte conteúdo:

Olá mundo !!!
1 + 1 = 2

Drive carregado com sucesso!!!

Conexao estabelecida!!!

- 1

- 7

- 17

- 37


[5] Comentário enviado por fabio em 01/07/2009 - 13:00h

Desculpem o transtorno, artigo completo no ar!

Obrigado pelo aviso Geraldo.

[6] Comentário enviado por Milton Quirino em 23/07/2009 - 10:34h

Muito bom !!!

Já add nos favoritos.

[7] Comentário enviado por rbertelle em 30/09/2009 - 17:53h

Caro gjr_rj segui criteriosamente seu tutorial, achei um pequeno erro na hora de compilar o arquivo teste2.java, mas consegui contorna-lo.
Já no final revisei e tentei de tudo, mas só obtive a resposta abaixo no browser.
Alguma segestão?
Abraço


HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: Unable to compile class for JSP:

An error occurred at line: 30 in the jsp file: /index.jsp
The operator + is undefined for the argument type(s) String, void
27: }
28: catch (Exception ex)
29: {
30: out.println("<br>Erro no Select!!!<br>" + ex.printStackTrace());
31: }
32: }
33: catch (Exception ex)


An error occurred at line: 35 in the jsp file: /index.jsp
The operator + is undefined for the argument type(s) String, void
32: }
33: catch (Exception ex)
34: {
35: out.println("<br>Erro na conexao!!!<br>" + ex.printStackTrace());
36: }
37: }
38: catch (ClassNotFoundException ex)


An error occurred at line: 40 in the jsp file: /index.jsp
The operator + is undefined for the argument type(s) String, void
37: }
38: catch (ClassNotFoundException ex)
39: {
40: out.println("<br>Erro na conexao com a base de dados!!!<br>" + ex.printStackTrace());
41: }
42: catch (Exception ex)
43: {


An error occurred at line: 44 in the jsp file: /index.jsp
The operator + is undefined for the argument type(s) String, void
41: }
42: catch (Exception ex)
43: {
44: out.println("<br>Driver nao pode ser carregado!!!<br>" + ex.printStackTrace());
45: }
46: out.println("<br>Olá Base!!!<br>");
47: }


An error occurred at line: 47 in the jsp file: /index.jsp
Syntax error, insert "Finally" to complete TryStatement
44: out.println("<br>Driver nao pode ser carregado!!!<br>" + ex.printStackTrace());
45: }
46: out.println("<br>Olá Base!!!<br>");
47: }
48:
49: %>



An error occurred at line: 95 in the generated java file
Syntax error on token "catch", Identifier expected


An error occurred at line: 97 in the generated java file
out cannot be resolved


An error occurred at line: 97 in the generated java file
_jspx_out cannot be resolved


An error occurred at line: 98 in the generated java file
out cannot be resolved


An error occurred at line: 98 in the generated java file
out cannot be resolved


An error occurred at line: 99 in the generated java file
out cannot be resolved


An error occurred at line: 100 in the generated java file
_jspx_page_context cannot be resolved


An error occurred at line: 100 in the generated java file
_jspx_page_context cannot be resolved


An error occurred at line: 102 in the generated java file
Syntax error on token "finally", { expected


An error occurred at line: 103 in the generated java file
_jspxFactory cannot be resolved


An error occurred at line: 103 in the generated java file
_jspxFactory cannot be resolved


An error occurred at line: 103 in the generated java file
_jspx_page_context cannot be resolved

Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:93)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:435)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:298)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:277)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:265)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:564)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:302)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:244)
java.security.AccessController.doPrivileged(Native Method)
javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:276)
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:162)

note The full stack trace of the root cause is available in the Apache Tomcat/5.5 logs.
Apache Tomcat/5.5

[8] Comentário enviado por admwagner em 24/05/2010 - 13:33h

.'.
Grato pelo artigo

Wagner Ferreira
.'.

[9] Comentário enviado por felimpe em 15/09/2010 - 09:52h

foi um excelente artigo porem o final decepcionou.
deu o mesmo erro que o kra q falou acima..

org.apache.jasper.JasperException: Unable to compile class for JSP:

An error occurred at line: 30 in the jsp file: /index.jsp
The operator + is undefined for the argument type(s) String, void
27: }
28: catch (Exception ex)
29: {
30: out.println("<br>Erro no Select!!!<br>" + ex.printStackTrace());
31: }
32: }
33: catch (Exception ex)


An error occurred at line: 35 in the jsp file: /index.jsp
The operator + is undefined for the argument type(s) String, void
32: }
33: catch (Exception ex)
34: {
35: out.println("<br>Erro na conexao!!!<br>" + ex.printStackTrace());
36: }
37: }
38: catch (ClassNotFoundException ex)


An error occurred at line: 40 in the jsp file: /index.jsp
The operator + is undefined for the argument type(s) String, void
37: }
38: catch (ClassNotFoundException ex)
39: {
40: out.println("<br>Erro na conexao com a base de dados!!!<br>" + ex.printStackTrace());
41: }
42: catch (Exception ex)
43: {


An error occurred at line: 44 in the jsp file: /index.jsp
The operator + is undefined for the argument type(s) String, void
41: }
42: catch (Exception ex)
43: {
44: out.println("<br>Drive nao pode ser carregado!!!<br>" + ex.printStackTrace());
45: }
46: out.println("<br>Olá Base!!!<br>");
47: }


An error occurred at line: 47 in the jsp file: /index.jsp
Syntax error, insert "Finally" to complete TryStatement
44: out.println("<br>Drive nao pode ser carregado!!!<br>" + ex.printStackTrace());
45: }
46: out.println("<br>Olá Base!!!<br>");
47: }
48:
49: %>


An error occurred at line: 104 in the generated java file
Syntax error on token "catch", Identifier expected

An error occurred at line: 106 in the generated java file
out cannot be resolved

An error occurred at line: 106 in the generated java file
_jspx_out cannot be resolved

An error occurred at line: 107 in the generated java file
out cannot be resolved

An error occurred at line: 107 in the generated java file
out cannot be resolved

An error occurred at line: 108 in the generated java file
out cannot be resolved

An error occurred at line: 109 in the generated java file
_jspx_page_context cannot be resolved

An error occurred at line: 109 in the generated java file
_jspx_page_context cannot be resolved

An error occurred at line: 111 in the generated java file
Syntax error on token "finally", { expected

An error occurred at line: 112 in the generated java file
_jspx_page_context cannot be resolved

Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:439)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:312)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:299)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:589)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts