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]
-------------------------------------------------------------------------