Olá pessoal

Estou desenvolvendo uma aplicação Servidora que utiliza RMI e quando tento
devolver um objeto Connection para o
Cliente recebo essa mensagem:

java.rmi.UnmarshalException: error unmarshalling return; nested exception
is:
        java.io.WriteAbortedException: Writing aborted by exception;
java.io.Not
SerializableException: sun.jdbc.odbc.JdbcOdbcConnection

Espero que alguém possa me dizer algo!

Obrigado!

Ricardo Santana


Aqui está a classe do objeto que estou tentando devolver:

/*
* Alterado: Ricardo Santana - 07/11/2000.
* Objetivo: Incluir a propriedade de Tipo de Conexão.
*           Extender a classe Init para obter todas as variáveis
*           declaradas nela.
*
* Alterado: Ricardo Santana - 12/11/2000.
* Objetivo: Utilizar a constante que representa o separador do id. de
conexão.
*/
package com.netgrafos.database;

import java.sql.*;
import java.io.Serializable;
import com.netgrafos.*;

/**
* Definiçao da estrutura de Controle de Conexões (Connections) para o
Gerenciador de
* Conexões.
*
* @author Ricardo Santana - 17/08/2000.
* @version 1.1 - Multiplataforma - NETGrafos Technology.
* @see query
*/
file://public class DBConnectionObject extends Init {
public class DBConnectionObject extends Init implements Serializable {

 /**
 * Identificação da conexão. Formato: "D:C", onde
 * D = Id. Banco de Dados e C = Id. da Conexão.
 */
 private String id;

 /**
 * Objeto Connection.
 */
 private /*transient*/ Connection connection;

 /**
 * Tipo de conexão.<br>
 * Normal = Sujeita a verificação de tempo de ociosidade ou
 * Permanente = Não sujeita a essa verificação.
 */
 private int type;

 /**
 * Situação da Conexão.
 */
 private int situation;

 /**
 * Data e Hora de Criação da Conexão (Em milisegundos).
 */
 private long age;

 /**
 * Obtém a Identificação da conexão.
 *
 * @return Identificador da conexão.
 */
 public String getId() {
  return id;
 }

 /**
 * Atribui a Identificação da conexão.
 *
 * @param sId Identificador da conexão.
 */
 public void setId(String sId) {
  if(sId != null) {
   // Consiste o conteúdo passado.
   if(sId.trim().equals("") || sId.indexOf(SEP_CONNECTION_ID) == 0 ||
Strings.occurs(sId, SEP_CONNECTION_ID)  > 1) {
    sId = null;
   }
  }

  // Somente manipula se o conteúdo for válido.
  if(sId != null)
   id = sId;

  return;
 }

 /**
 * Atribui a Situação da conexão.
 *
 * @return Situação da conexão.
 */
 public int getSituation() {
  return situation;
 }

 /**
 * Atribui a Situação da conexão.
 *
 * @param iSituation Situação da conexão.
 */
 public void setSituation(int iSituation) {
  if(iSituation < CON_STATUS_FREE || iSituation > CON_STATUS_AVAILABLE)
   iSituation = CON_STATUS_FREE; // Torna a conexão livre.

  situation = iSituation;

  return;
 }

 /**
 * Obtém o tempo de vida da conexão desde a abertura ou o último acesso.
 *
 * @return Idade da conexão.
 */
 public long getAge() {
  return age;
 }

 /**
 * Atribui o tempo de vida da conexão desde a abertura ou o último acesso.
 *
 * @param lAge Idade da conexão.
 */
 public void setAge(long lAge) {
  if(lAge < 0L)
   lAge = 0L;

  age = lAge;

  return;
 }

 /**
 * Obtém o tipo da conexão.
 *
 * @return Tipo da conexão.
 */
 public int getType() {
  return type;
 }

 /**
 * Atribui o tipo da conexão.
 *
 * @param iType Tipo da conexão.
 */
 public void setType(int iType) {
  if(iType != CON_TYPE_NORMAL && iType != CON_TYPE_PERMANENT) {
   iType = CON_TYPE_NORMAL;
  }

  type = iType;

  return;
 }

 /**
 * Obtém a referência ao objeto de comunicação com o Banco de Dados.
 *
 * @return Objeto da conexão.
 */
 public Connection getConnection() {
  return connection;
 }

 /**
 * Atribui uma referência ao objeto de comunicação com o Banco de Dados.
 *
 * @param oConnection Objeto de conexão.
 */
 public void setConnection(Connection oConnection) {
  connection = oConnection;

  return;
 }

 /**
 * Inicializa a estrutura.
 *
 * @param lDBId   Identificação do Banco de Dados.
 * @param lConnId Identificador da conexão.
 * @param oConn   Objeto Connection.
 * /
 private DBConnectionObject() {
  Id         = null;
  Situation  = CON_STATUS_FREE;
  Connection = null;
  Age        = 0L;
  Type       = CON_TYPE_NORMAL;
 }
 */

 /**
 * Inicializa a estrutura.
 *
 * @param lDBId   Identificação do Banco de Dados.
 * @param lConnId Identificador da conexão.
 * @param oConn   Objeto Connection.
 */
 public DBConnectionObject(long lDBId, long lConnId, Connection oConn) {
  id         = ("" + lDBId) + SEP_CONNECTION_ID + lConnId;
  situation  = CON_STATUS_FREE;
  connection = oConn;
  age        = System.currentTimeMillis();
  type       = CON_TYPE_NORMAL;
 }
}


------------------------------ LISTA SOUJAVA ---------------------------- 
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP 
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED] 
-------------------------------------------------------------------------

Reply via email to