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...<%--
Document : registerBean
Created on : 20/04/2010, 01:17:36
Author : fabio
--%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<jsp:useBean id="dataBaseRegister" class="dataBase.dataBase" />
<jsp:setProperty name="dataBaseRegister" property="*" />
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Student Branch</title>
</head>
<style>
h1 {
color: black
}
</style>
<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: [email removido]</i>
<%
try{
dataBase.usersDAO users = new dataBase.usersDAO();
users.getConnection();
users.createUser("[telefone removido]");
}
catch(Exception e){
out.println(e);
}
%>
</body>
</html>
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;
}
}
}
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/newUserRegister">
<Resource
name="jdbc/studentbranch"
type="javax.sql.DataSource"
maxActive="30"
maxIdle="100"
maxWait="10000"
username="root"
password="aragorn"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/studentbranch"
auth="Container"
/>
</Context>
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<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>
</web-app>
Estou rodando no tomcat5.5, no debian5.
O erro abaixoorg.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("[telefone removido]");
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)
MUITO OBRIGADO!