Estou fazendo um trabalho para faculdade em struts 2 só um crud, eu consigo fazer em sruts 1 usando uma classe de conexão, mas
usando poll de conexôes ta dando esse erro, por favor me ajudem.
SEVERE: Exception sending context initialized event to listener instance of class app11a.listener.Applistener
java.lang.NullPointerException
at javax.naming.InitialContext.getURLScheme(Unknown Source)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(Unknown Source)
at javax.naming.InitialContext.lookup(Unknown Source)
at app11a.listener.Applistener.contextInitialized(Applistener.java:19)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3764)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4216)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:448)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
package app11a.listener;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.sql.DataSource;
public class Applistener implements ServletContextListener {
public void contextInitialized(ServletContextEvent sce) {
ServletContext servletContext = sce.getServletContext();
String dataSoucerJndiName = servletContext
.getInitParameter("dataSoucerJndiName");
try {
Context context = new InitialContext();
DataSource dataSource = (DataSource) context
.lookup(dataSoucerJndiName);
servletContext.setAttribute("dataSource", dataSource);
} catch (NamingException e) {
throw new RuntimeException();
}
}
public void contextDestroyed(ServletContextEvent cse) {
}
}
package app11a.DAO;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
public class EmpregadoDAOSQLImpl extends DAOBase implements EmpregadoDAO {
private static final String CREATE_EMPREGADO_SQL = "INSERT INTO empregados (nome, sobrenome) VALUES(?,?)";
public void createEmpregado(Empregado empregado) throws DAOException {
Connection connection = null;
PreparedStatement pStatement = null;
try {
connection = getConnection();
pStatement = connection.prepareStatement(CREATE_EMPREGADO_SQL);
pStatement.setString(1, empregado.getNome());
pStatement.setString(2, empregado.getSobrenome());
pStatement.executeUpdate();
pStatement.close();
} catch (SQLException ex) {
throw new DAOException();
} finally {
try {
connection.close();
} catch (SQLException ex) {
throw new DAOException();
}
}
}
private static final String UPDATE_EMPREGADO_SQL = "UPDATE empregados set nome=?, sobrenome=? WHERE id=?";
public void updateEmpregado(Empregado empregado) throws DAOException {
Connection connection = null;
PreparedStatement pStatement = null;
try {
connection = getConnection();
pStatement = connection.prepareStatement(UPDATE_EMPREGADO_SQL);
pStatement.setString(1, empregado.getNome());
pStatement.setString(2, empregado.getSobrenome());
pStatement.executeUpdate();
pStatement.close();
} catch (SQLException ex) {
throw new DAOException();
} finally {
try {
connection.close();
} catch (SQLException ex) {
}
}
}
private static final String GET_EMPREGADO_SQL = "SELECT nome, sobrenome FROM empregados WHERE id=?";
public Empregado getEmpregado(int empregadoId) throws DAOException {
Connection connection = null;
PreparedStatement pStatement = null;
ResultSet rs = null;
Empregado empregado = new Empregado();
try {
connection = getConnection();
pStatement = connection.prepareStatement(GET_EMPREGADO_SQL);
pStatement.setInt(1, empregadoId);
rs = pStatement.executeQuery();
if (rs.next()) {
empregado.setNome(rs.getString("nome"));
empregado.setSobrenome(rs.getString("sobrenome"));
empregado.setId(empregadoId);
}
rs.close();
pStatement.close();
} catch (SQLException ex) {
throw new DAOException();
} finally {
try {
connection.close();
} catch (SQLException ex) {
}
}
return empregado;
}
private static final String DELETE_EMPREGADO_SQL = "DELETE FROM empregados WHERE id=?";
public void deleteEmpregado(int empregadoId) throws DAOException {
Connection connection = null;
PreparedStatement pStatement = null;
try {
connection = getConnection();
pStatement = connection.prepareStatement(DELETE_EMPREGADO_SQL);
pStatement.setInt(1, empregadoId);
pStatement.executeUpdate();
pStatement.close();
} catch (SQLException ex) {
throw new DAOException();
} finally {
try {
connection.close();
} catch (SQLException ex) {
}
}
}
private static final String SEARCH_EMPREGADO_SQL = "SELECT id, nome, sobrenome FROM empregados WHERE";
public List<Empregado> searchEmpregado(
EmpregadoSearchCriteria searchCriteria) throws DAOException {
List<Empregado> empregados = new ArrayList<Empregado>();
Connection connection = null;
Statement statement = null;
ResultSet resultSet = null;
// Constrói os critérios de pesquisa
StringBuilder criteriaSql = new StringBuilder(512);
criteriaSql.append(SEARCH_EMPREGADO_SQL);
if (searchCriteria.getNome() != null) {
criteriaSql.append("nome LIKE '%"
+ DBUtil.fixSqlFieldValue(searchCriteria.getNome())
+ "%' AND ");
}
if (searchCriteria.getSobrenome() != null) {
criteriaSql.append("lastName LIKE '%"
+ DBUtil.fixSqlFieldValue(searchCriteria.getSobrenome())
+ "%' AND ");
}
// Remove 'AND' & 'WHERE' não usados
if (criteriaSql.substring(criteriaSql.length() - 5).equals("AND"))
criteriaSql.delete(criteriaSql.length() - 5,
criteriaSql.length() - 1);
if (criteriaSql.substring(criteriaSql.length() - 7).equals("WHERE"))
criteriaSql.delete(criteriaSql.length() - 7,
criteriaSql.length() - 1);
try {
connection = getConnection();
statement = connection.createStatement();
resultSet = statement.executeQuery(criteriaSql.toString());
while (resultSet.next()) {
Empregado empregado = new Empregado();
empregado.setId(resultSet.getInt("id"));
empregado.setNome(resultSet.getString("nome"));
empregado.setSobrenome(resultSet.getString("sobrenome"));
empregados.add(empregado);
}
resultSet.close();
statement.close();
} catch (SQLException ex) {
throw new DAOException();
} finally {
try {
connection.close();
} catch (SQLException ex) {
}
}
return empregados;
}
}
<Context path="/struts2" docBase="struts2"
reloadable="true" debug="8">
<Resource name="jdbc/myDataSource" auth="Container"
type="javax.sql.DataSource" />
<ResourceParams name="jdbc/myDataSoucer">
<parameter>
<name>factory</name>
<value>
org.apache.commons.dbcp.BasicDataSoucerFactory
</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>100</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>30</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
<parameter>
<name>username</name>
<value>root</value>
</parameter>
<parameter>
<name>password</name>
<value></value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.mysql.jdbc.Driver</value>
</parameter>
<parameter>
<name>url</name>
<value>
jdbc:mysql://localhost/empresa
</value>
</parameter>
</ResourceParams>
</Context>
</Host>