Pessoal, muito boa noite a todos…
Estou tentando implementar aqui um webapp com pooling of connections (tomcat + mysql), só que estou tendo uns erros, já revirei todas possibilidades e não consegui solucionar.
Agradeceria muito se alguém mais experiente pudesse dar uma olhada no que estou fazendo para ver se encontra algum erro aparente.
Bom, vamos lá com os códigos…
Esta classe abaixo é um Bean que chama o DAO para fazer a inserção no BD…
[code]<%–
Document : registerBean
Created on : 20/04/2010, 01:17:36
Author : fabio
–%>
<%@page contentType=“text/html” pageEncoding=“UTF-8”%>
<jsp:useBean id=“dataBaseRegister” class=“dataBase.dataBase” />
<jsp:setProperty name=“dataBaseRegister” property="*" />
Student Branch h1 { color: black }<body>
<h1>Cadastro de usuarios novos</h1>
Parabens <jsp:getProperty name="dataBaseRegister" property="nome" /><br><br>
Agora voce pode acessar a area de usuarios<br><br><br>
<i>Obs: Em breve entraremos em contato com voce...</i><br>
<i>Qualquer duvida entre em contato: ieee.ufabc@gmail.com</i>
<%
try{
dataBase.usersDAO users = new dataBase.usersDAO();
users.getConnection();
users.createUser("36195993867");
}
catch(Exception e){
out.println(e);
}
%>
</body>
[/code]
Aqui eu tenho a classe DAO
[code]package dataBase;
import java.sql.;
import javax.naming.;
import javax.sql.*;
import javax.swing.JOptionPane;
public class usersDAO {
private Connection connection = null;
private Statement statement = null;
private PreparedStatement prepStatement = null;
private ResultSet results = null;
private static final String DATASOURCE_NAME = "java:comp/env/jdbc/studentbranch";
private static final String INSERT_STATEMENT = "INSERT INTO users (cpf) VALUES (?)";
public void getConnection() {
if (connection == null) {
try {
Context initialContext = new InitialContext();
DataSource ds = (DataSource) initialContext.lookup(DATASOURCE_NAME);
connection = ds.getConnection();
} catch (NamingException e) {
JOptionPane.showMessageDialog(null, e);
e.printStackTrace();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, e.toString(), DATASOURCE_NAME, 1);
e.printStackTrace();
}
}
}
public void createUser(String cpf) {
try {
getConnection();
prepStatement = connection.prepareStatement(INSERT_STATEMENT);
prepStatement.setString(1, cpf);
//prepStatement.setString(1, usuario.getCpf());
prepStatement.executeUpdate();
prepStatement.close();
prepStatement = null;
connection.close();
connection = null;
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, e.toString(), DATASOURCE_NAME, 1);
e.printStackTrace();
} finally {
cleanUp();
}
}
private void cleanUp() {
// always make sure result sets, statements and connections are closed,
if (results != null) {
try {
results.close();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, e.toString(), DATASOURCE_NAME, 1);
e.printStackTrace();
}
results = null;
}
if (statement != null) {
try {
statement.close();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, e.toString(), DATASOURCE_NAME, 1);
e.printStackTrace();
}
statement = null;
}
if (prepStatement != null) {
try {
prepStatement.close();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, e.toString(), DATASOURCE_NAME, 1);
e.printStackTrace();
}
prepStatement = null;
}
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, e.toString(), DATASOURCE_NAME, 1);
e.printStackTrace();
}
connection = null;
}
}
}
[/code]
Aqui eu tenho meu context.xml
[code]<?xml version="1.0" encoding="UTF-8"?>
[/code]
Aqui eu tenho meu web.xml
[code]<?xml version="1.0" encoding="UTF-8"?>
30
index.jsp
<resource-ref>
<description>BD Connection></description>
<res-ref-name>jdbc/studentbranch></res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
[/code]
Estou rodando no tomcat5.5, no debian5.
O erro abaixo
[code]org.apache.jasper.JasperException: Exception in JSP: /registerBean.jsp:84
81: <%
82: try{
83: dataBase.usersDAO users = new dataBase.usersDAO();
84: users.getConnection();
85: users.createUser(“36195993867”);
86: }
87: catch(Exception e){
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:451)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:355)
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:57)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:616)
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:244)
java.security.AccessController.doPrivileged(Native Method)
javax.security.auth.Subject.doAsPrivileged(Subject.java:537)
org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:276)
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:162)
root cause
javax.servlet.ServletException: Could not initialize class javax.swing.JOptionPane
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:841)
org.apache.jasper.runtime.PageContextImpl.access$11(PageContextImpl.java:779)
org.apache.jasper.runtime.PageContextImpl$12.run(PageContextImpl.java:761)
java.security.AccessController.doPrivileged(Native Method)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:759)
org.apache.jsp.registerBean_jsp._jspService(registerBean_jsp.java:208)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
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:57)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:616)
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:244)
java.security.AccessController.doPrivileged(Native Method)
javax.security.auth.Subject.doAsPrivileged(Subject.java:537)
org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:276)
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:162)
root cause
java.lang.NoClassDefFoundError: Could not initialize class javax.swing.JOptionPane
dataBase.usersDAO.getConnection(usersDAO.java:27)
org.apache.jsp.registerBean_jsp._jspService(registerBean_jsp.java:187)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
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:57)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:616)
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:244)
java.security.AccessController.doPrivileged(Native Method)
javax.security.auth.Subject.doAsPrivileged(Subject.java:537)
org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:276)
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:162)
[/code]
MUITO OBRIGADO!