Ver Mensaje Individual
  #21 (permalink)  
Antiguo 25/11/2003, 08:51
Avatar de alexbariv
alexbariv
 
Fecha de Ingreso: septiembre-2003
Ubicación: Mérida, Venezuela
Mensajes: 766
Antigüedad: 21 años, 7 meses
Puntos: 0
Mi amigo greeneyed!!

Denuevo aqui pidiendo tu opinion, hice lo que dice la pagina del howto de tomcat5 y creo que ya porfin lo termine..., dime que error ves para solucionarlo, pero supuestamente este es el pool, y quisiera tu opinion antes de implementarlo...

Este es el codigo que le agregue al server.xml para que vea el context:

Código PHP:
<Context path="" docBase="LoginMenuCiis"
        
debug="0" reloadable="true" 
        
crossContext="true" >
<
Resource name="jdbc/ciis_libertador"
               
auth="Container"
               
type="javax.sql.DataSource"/>


<
ResourceParams name="jdbc/ciis_libertador">
  <
parameter>
    <
name>factory</name>
    <
value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
  </
parameter>
  <
parameter>
    <
name>driverClassName</name>
    <
value>sun.jdbc.odbc.JdbcOdbcDriver</value>
  </
parameter>
  <
parameter>
    <
name>url</name>
    <
value>jdbc:odbc:ciis_libertador</value>
  </
parameter>
  <
parameter>
    <
name>username</name>
    <
value>tal</value>
  </
parameter>
  <
parameter>
    <
name>password</name>
    <
value>lat</value>
  </
parameter>
  <
parameter>
    <
name>maxActive</name>
    <
value>20</value>
  </
parameter>
     <
parameter>
    <
name>maxIdle</name>
    <
value>10</value>
  </
parameter>
  <
parameter>
    <
name>maxWait</name>
    <
value>-1</value>
  </
parameter>
</
ResourceParams>

</
Context


Este es el codigo que va en el WEB.XML del directorio donde esta contenida la aplicacion:

Código PHP:
<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>
        <resource-ref>
         <description>pool base datos test</description>
         <res-ref-name>jdbc/ciis_libertador</res-ref-name>
         <res-type>javax.sql.DataSource</res-type>
         <res-auth>Container</res-auth>
        </resource-ref>

</web-app>

Y AHORA LO MAS IMPORTANTE, LA MANERA COMO CONECTA EL SERVLET...

No vario mucho a la manera como lo hacia antes, pero supongo que es mejor...:

Código PHP:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
import javax.sql.*;
import javax.naming.*;

public class 
Venezuela extends HttpServlet {


    private 
String SQL null
                       
Estado =null,
                       
Municipio null,
                       
Aviso ""
                       
SQL1null;
        

    
Connection conn null;
    
        private 
DataSource ds null;
        
     public  
void init (){
            
            
               try{

                    
Context initContext = new InitialContext();
                    
                    
ds = (DataSource)initContext.lookup("java:comp/env/jdbc/ciis_libertador");

                   
                    
synchronized (ds
                    {
                        
conn ds.getConnection(); // cogemos la conexion
                    
}


                }catch(
Exception e) {
                    
System.out.println("Catch del conector a la bd");
                    
System.out.println(e.getMessage());
                }

    }

    

        
    protected 
void doPost (HttpServletRequest requestHttpServletResponse responsethrows ServletExceptionIOException{


                        
Municipio request.getParameter("Municipio");   
    
                    
Estado request.getParameter("Estado");
                        
                        
TipoAccesorequest.getParameter("TipoAcceso");
                        
                        
int x=Integer.parseInt(TipoAcceso);
                        
                        
DevolverEntrar2(response);

                            
                        try{

                            
conn.close();

                        }catch(
Exception e) {
                            
System.out.println("Error cerrando la Conexion");
                            
System.out.println(e.getMessage());
                        }

        }

        
             public 
int actualizarCombo(String column1String column2String tableString xpais){

         
Statement stmt nullstmt1null;
                 
String valor null;
                 
int codigocodpades;

        try{
                    
stmt1 conn.createStatement();
                        
SQL1="SELECT codigopais from Paises WHERE descripcion='";
                        
SQL1+=xpais;
                        
SQL1+="'";
                        
ResultSet rs1 stmt1.executeQuery(SQL1);
                        
                    if (
rs1.next()){
                                
codpades  = (rs1.getInt("codigopais"));
                                do{
                                        
stmt conn.createStatement();
                                        
String SQL "SELECT ";
                                        
SQL+=column1;
                                        
SQL+=",";
                                        
SQL+=column2;
                                        
SQL+=" FROM ";
                                        
SQL+=table;
                                        
SQL+=" WHERE CodPais='";
                                        
SQL+=codpades;
                                        
SQL+="'";
                                        
SQL+=" ORDER By ";
                                        
SQL+=column2;
                                        
ResultSet rs stmt.executeQuery(SQL);

                                        if (
rs.next()){
                                                        
combo "";
                                                        do{
                                                                
codigo = (rs.getInt(column1));
                                                                
valor = (rs.getString(column2));

                                                                
combo += "<option> ";
                                                                
combo += valor;
                                                                
combo += "</option>\n";
                                                        }while(
rs.next());
                                            }
                                 }while(
rs1.next());
                            }
        
                        return 
0;    
                        
        }catch (
SQLException sql){
            
System.out.println("Se produjo un error creando la sentencia SQL para el combo");
            
System.out.println(sql.getMessage());    
            return -
2;    
        }
finally{
            if(
stmt != null || stmt1 != null){
                try{
                    
stmt.close();
                                        
stmt1.close();
                }catch (
SQLException e){
                    
System.out.println("Error cerrando la sentencia SQL");
                    
System.out.println(e.getMessage());    
                    return -
3;            
                }
            }
            
        }

    } 
Observa que dejo hago una sola conn, y luego en esta hago todas las sentencias que necesito, y cierro las sentencias, y por ultimo al final del metodo dopost, cierra la conex... esta eso correcto?

Que dices??

Como siempre, y una vez mas, esperando tu opinion...

GRACIAS!!!!
__________________
"Piensa como una persona de acción y actúa como una persona que piensa."