Colocando Aplicação em Produção error no ODBC DNS

Olá Pessoal, estou tendo um problema desenvolvi uma aplicação em JSP com Banco PostgreSQL, estão em dois servidores um de aplicação e outros de banco de dados ambos Windows 2008 64-bits fiz a conexão ODBC e funcionou corretamente, mas ao utilizar a aplicação apresenta o seguinte error:

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: Exception in JSP: /index.jsp:110

107:   if (!MM_abortEdit) {
108:     // finish the sql and execute it
109:     Driver MM_driver = (Driver)Class.forName(MM_editDriver).newInstance();
110:     Connection MM_connection = DriverManager.getConnection(MM_editConnection,MM_editUserName,MM_editPassword);
111:     PreparedStatement MM_editStatement = MM_connection.prepareStatement(MM_editQuery.toString());
112:     MM_editStatement.executeUpdate();
113:     MM_connection.close();


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:803)
root cause

javax.servlet.ServletException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
	org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:841)
	org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:774)
	org.apache.jsp.index_jsp._jspService(index_jsp.java:219)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	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:803)
root cause

java.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
	sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
	sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
	sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(Unknown Source)
	sun.jdbc.odbc.JdbcOdbcConnection.initialize(Unknown Source)
	sun.jdbc.odbc.JdbcOdbcDriver.connect(Unknown Source)
	java.sql.DriverManager.getConnection(Unknown Source)
	java.sql.DriverManager.getConnection(Unknown Source)
	org.apache.jsp.index_jsp._jspService(index_jsp.java:177)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	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:803)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.25 logs.

Ações já feitas:
Variáveis de ambiente “setadas”:
CLASSPATH = C:\Java\jdk1.5.0_16\lib\postgresql-8.3-604.jdbc3.jar
JAVA_HOME = C:\Java\jdk1.5.0_16
Path = C:\Program Files\HP\NCU;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Java\jdk1.5.0_16\bin

[Odbc Dsn] está Ok ao testar a conexão está dando sucesso.

Não sei o que pode ser se é incompatibilidade pois o driver de [Odbc Dsn] é um baixado deste site [http://www.geocities.jp/inocchichichi/psqlodbc/index.html] foi o único que funcionou com o win2008 64bits.

Segue abaixo meu arquivo de conexão:

<%
// FileName="sun_jdbc_odbc_conn.htm"
// Type="JDBC" ""
// DesigntimeType="JDBC"
// HTTP="false"
// Catalog=""
// Schema=""
String MM_jsp_DRIVER = "sun.jdbc.odbc.JdbcOdbcDriver";
String MM_jsp_USERNAME = "jsp";
String MM_jsp_PASSWORD = "jsp";
String MM_jsp_STRING = "jdbc:odbc:jsp";
%>

Até mais

Porque você está usando ODBC e não um driver JDBC para Postgre?

A mensagem está dizendo que não encontrou o drive, use JDBC que vc consegue.

Tenta isso aí:

if (con== null){ try{ Class.forName("org.postgresql.Driver"); con = DriverManager.getConnection ("jdbc:postgresql://localhost:5432/banco","usuario","senha"); } catch (SQLException e) { System.err.println("Erro: "+e); con = null; } catch (ClassNotFoundException e) { System.out.println("Drive JDBC(PostGree) Não Encontrado"); e.printStackTrace(); } }

Ainda continua dando erro

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: Exception in JSP: /index.jsp:109
106:   
107:   if (!MM_abortEdit) {
108:     // finish the sql and execute it
109:     Driver MM_driver = (Driver)Class.forName(MM_editDriver).newInstance();
110:     Connection MM_connection = DriverManager.getConnection(MM_editConnection,MM_editUserName,MM_editPassword);
111:     PreparedStatement MM_editStatement = MM_connection.prepareStatement(MM_editQuery.toString());
112:     MM_editStatement.executeUpdate();


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:803)
root cause

javax.servlet.ServletException: org.postgresql.Driver
	org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:841)
	org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:774)
	org.apache.jsp.index_jsp._jspService(index_jsp.java:239)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	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:803)
root cause

java.lang.ClassNotFoundException: org.postgresql.Driver
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1362)
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1208)
	org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:125)
	org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:63)
	java.lang.ClassLoader.loadClassInternal(Unknown Source)
	java.lang.Class.forName0(Native Method)
	java.lang.Class.forName(Unknown Source)
	org.apache.jsp.index_jsp._jspService(index_jsp.java:196)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	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:803)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.25 logs.

Segue minha páginas: jsp.jsp de conexão:

<%
// FileName="sun_jdbc_odbc_conn.htm"
// Type="JDBC" ""
// DesigntimeType="JDBC"
// HTTP="false"
// Catalog=""
// Schema=""
// Comentario ====
// String MM_jsp_DRIVER = "sun.jdbc.odbc.JdbcOdbcDriver";
// String MM_jsp_USERNAME = "jsp";
// String MM_jsp_PASSWORD = "jsp";
// String MM_jsp_STRING = "jdbc:odbc:jsp";

String MM_jsp_DRIVER = "org.postgresql.Driver";
String MM_jsp_USERNAME = "jsp";
String MM_jsp_PASSWORD = "jsp";
String MM_jsp_STRING = "jdbc:postgresql://10.101.83.15:5432";

Connection con=null;
if (con== null){
	try{
		Class.forName(MM_jsp_DRIVER);
		con = DriverManager.getConnection (MM_jsp_STRING,MM_jsp_USERNAME,MM_jsp_PASSWORD);
	} catch (SQLException e) {
		System.err.println("Erro: "+e);
		con = null;
	} catch (ClassNotFoundException e) {
	System.out.println("Drive JDBC(PostGree) Não Encontrado");
	e.printStackTrace();
	}
}
%>

meu index.jsp

<%@ page contentType="text/html; charset=iso-8859-1" language="java" import="java.sql.*" errorPage="" %>
<%@ include file="Connections/jsp.jsp" %>
<%
// *** Edit Operations: declare variables

// set the form action variable
String MM_editAction = request.getRequestURI();
if (request.getQueryString() != null && request.getQueryString().length() > 0) {
  String queryString = request.getQueryString();
  String tempStr = "";
  for (int i=0; i < queryString.length(); i++) {
    if (queryString.charAt(i) == '<') tempStr = tempStr + "&lt;";
    else if (queryString.charAt(i) == '>') tempStr = tempStr + "&gt;";
    else if (queryString.charAt(i) == '"') tempStr = tempStr +  "&quot;";
    else tempStr = tempStr + queryString.charAt(i);
  }
  MM_editAction += "?" + tempStr;
}

// connection information
String MM_editDriver = null, MM_editConnection = null, MM_editUserName = null, MM_editPassword = null;

// redirect information
String MM_editRedirectUrl = null;

// query string to execute
StringBuffer MM_editQuery = null;

// boolean to abort record edit
boolean MM_abortEdit = false;

// table information
String MM_editTable = null, MM_editColumn = null, MM_recordId = null;

// form field information
String[] MM_fields = null, MM_columns = null;
%>
<%
// *** Insert Record: set variables

if (request.getParameter("MM_insert") != null && request.getParameter("MM_insert").toString().equals("form1")) {

  MM_editDriver     = MM_jsp_DRIVER;
  MM_editConnection = MM_jsp_STRING;
  MM_editUserName   = MM_jsp_USERNAME;
  MM_editPassword   = MM_jsp_PASSWORD;
  MM_editTable  = "jsp.visitas";
  MM_editRedirectUrl = "home.jsp";
  String MM_fieldsStr = "ip_visita|value";
  String MM_columnsStr = "ip_visita|',none,''";

  // create the MM_fields and MM_columns arrays
  java.util.StringTokenizer tokens = new java.util.StringTokenizer(MM_fieldsStr,"|");
  MM_fields = new String[tokens.countTokens()];
  for (int i=0; tokens.hasMoreTokens(); i++) MM_fields[i] = tokens.nextToken();

  tokens = new java.util.StringTokenizer(MM_columnsStr,"|");
  MM_columns = new String[tokens.countTokens()];
  for (int i=0; tokens.hasMoreTokens(); i++) MM_columns[i] = tokens.nextToken();

  // set the form values
  for (int i=0; i+1 < MM_fields.length; i+=2) {
    MM_fields[i+1] = ((request.getParameter(MM_fields[i])!=null)?(String)request.getParameter(MM_fields[i]):"");
  }
 
  // append the query string to the redirect URL
  if (MM_editRedirectUrl.length() != 0 && request.getQueryString() != null) {
    MM_editRedirectUrl += ((MM_editRedirectUrl.indexOf('?') == -1)?"?":"&") + request.getQueryString();
  }
}
%>
<%
// *** Insert Record: construct a sql insert statement and execute it

if (request.getParameter("MM_insert") != null) {

  // create the insert sql statement
  StringBuffer MM_tableValues = new StringBuffer(), MM_dbValues = new StringBuffer();
  for (int i=0; i+1 < MM_fields.length; i+=2) {
    String formVal = MM_fields[i+1];
    String elem;
    java.util.StringTokenizer tokens = new java.util.StringTokenizer(MM_columns[i+1],",");
    String delim    = ((elem = (String)tokens.nextToken()) != null && elem.compareTo("none")!=0)?elem:"";
    String altVal   = ((elem = (String)tokens.nextToken()) != null && elem.compareTo("none")!=0)?elem:"";
    String emptyVal = ((elem = (String)tokens.nextToken()) != null && elem.compareTo("none")!=0)?elem:"";
    if (formVal.length() == 0) {
      formVal = emptyVal;
    } else {
      if (altVal.length() != 0) {
        formVal = altVal;
      } else if (delim.compareTo("'") == 0) {  // escape quotes
        StringBuffer escQuotes = new StringBuffer(formVal);
        for (int j=0; j < escQuotes.length(); j++)
          if (escQuotes.charAt(j) == '\'') escQuotes.insert(j++,'\'');
        formVal = "'" + escQuotes + "'";
      } else {
        formVal = delim + formVal + delim;
      }
    }
    MM_tableValues.append((i!=0)?",":"").append(MM_columns[i]);
    MM_dbValues.append((i!=0)?",":"").append(formVal);
  }
  MM_editQuery = new StringBuffer("insert into " + MM_editTable);
  MM_editQuery.append(" (").append(MM_tableValues.toString()).append(") values (");
  MM_editQuery.append(MM_dbValues.toString()).append(")");
  
  if (!MM_abortEdit) {
    // finish the sql and execute it
    Driver MM_driver = (Driver)Class.forName(MM_editDriver).newInstance();
    Connection MM_connection = DriverManager.getConnection(MM_editConnection,MM_editUserName,MM_editPassword);
    PreparedStatement MM_editStatement = MM_connection.prepareStatement(MM_editQuery.toString());
    MM_editStatement.executeUpdate();
    MM_connection.close();

    // redirect with URL parameters
    if (MM_editRedirectUrl.length() != 0) {
      response.sendRedirect(response.encodeRedirectURL(MM_editRedirectUrl));
      return;
    }
  }
}
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>P&aacute;gina Inicial</title>
</head>

<body onload="document.form1.submit()">
<form method="post" action="<%=MM_editAction%>" name="form1">
  <table>
    <tr>
      <td>&nbsp;</td>
    </tr>
  </table>
  <input type="hidden" name="ip_visita" value="<% out.print( request.getRemoteAddr() ); %>" >
  <input type="hidden" name="MM_insert" value="form1">
</form>
</body>
</html>

Valeu

Está faltando vc colocar na pasta library ou biblioteca do seu servidor o arquivo postgresql-versao-jdbc.jar baixa aqui http://jdbc.postgresql.org/download.html

Já está lá

CLASSPATH = C:\Java\jdk1.5.0_16\lib\postgresql-8.3-604.jdbc3.jar
JAVA_HOME = C:\Java\jdk1.5.0_16

Não sei o que pode ser…

olá pessoal baixei um drive mais antigo e consegui fazer a conexão está funcionando 100% muito obrigado a todos.