duvida Serializable - urgente  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
paulokarolPJ
Debugger
[Avatar]

Membro desde: 14/01/2005 00:00:00
Mensagens: 66
Offline

Galera, to com o seguinte problema,
tenho q passar uma classe como parametro pra um ejb, e por isso implemento a interface Serializable, so q nessa classe eu tenho um objeto Connection e esta dando o seguinte erro:

error marshalling arguments; nested exception is:
java.io.NotSerializableException: sun.jdbc.odbc.JdbcOdbcConnection

como posso passar esse driver como parametro? Por favor eh urgente!!
obrigado!!!
[WWW] aim icon [ICQ]
matheusPJ
GUJ Hacker
[Avatar]

Membro desde: 23/03/2003 00:00:00
Mensagens: 6928
Offline

pq tu nao passa os dados necessários pra conexão pro EJB ao invéz da connection toda? isso é meio gambiarra..

http://www.portaljava.com
[WWW] aim icon [ICQ]
bejetoPJ
JavaEvangelist
[Avatar]

Membro desde: 28/04/2004 00:00:00
Mensagens: 388
Offline

Você tem que adicionar esta classe ao arquivo de configuração onde você indica quais classes devem ser serializadas.

http://
[WWW] aim icon [ICQ]
paulokarolPJ
Debugger
[Avatar]

Membro desde: 14/01/2005 00:00:00
Mensagens: 66
Offline

Infelizmente tenho q passar a connection td matheus, pois esse Ejb faz parte de um sistema q trabalha assim com servlets e ja existe td uma estrutura q faz q funcione assim.

que arquivo eh esse bejeto?

obrigado
[WWW] aim icon [ICQ]
matheusPJ
GUJ Hacker
[Avatar]

Membro desde: 23/03/2003 00:00:00
Mensagens: 6928
Offline

refectoring detected :grin:

http://www.portaljava.com
[WWW] aim icon [ICQ]
darkseidPJ
GUJ Master
[Avatar]

Membro desde: 10/05/2004 00:00:00
Mensagens: 1334
Localização: 14921366
Offline

matheus wrote:refectoring detected :grin:


Heheheh........ gostei da idéia...

Realmente Paulo, passar um objeto conexão ao EJB eh meio estranho, mesmo pq a ideia de um EJB e q vc nao se preocupe com a conexão, o container faz isso pra vc.... :okok:

http://www.rafaelmanoel.pro.br
[WWW] aim icon [ICQ]
Samuel_PessorrussoPJ
JavaEvangelist
[Avatar]

Membro desde: 22/04/2004 00:00:00
Mensagens: 451
Localização: 4759103
Offline

Acho que vc não está entendendo o Serializable.

É o objeto que vc passa como parâmetro que deve implementar Serializable, e não a classe que chama o método.
No seu caso, Connection NÃO É SERIALIZABLE, não tem como passa-la para um EJB, você precisa criar a conexão dentro do seu business method em seu EJB.

http://
[WWW] aim icon [ICQ]
paulokarolPJ
Debugger
[Avatar]

Membro desde: 14/01/2005 00:00:00
Mensagens: 66
Offline

seguinte, vou explicar meu sistema pra vcs entenderem meu problema.

O ejb faz parte de um sistema q originalmente trabalhava e ainda traba com servlet.

O negocio eh o seguinte, eu tenho uma classe java chamada table q se conecta ao banco, essa conecçao eh passada pra ela na hora q ela eh instanciada em uma outra classe. Eu passo uma classe que junto com varias outras faz essa connecçao. Entao ao passar essa classe como parametro pra minha table minha conecçao esta aberta. Isso eh feito pq essa conecçao varia, pode ser de varios bancos.

agora entra o ejb em cena, o ejb vai fazer o papel dessa table, onde tenho q fazer as mesmas coisas so q com ejb, vou precisar usar essa mesma classe para abrir a conecçao, entao precisaria passa-la pro ejb, mas parece q isso nao eh possivel, estou usando BMP e estou com esse problema, pois nao sei como abrir a conecçao com o banco. Se alguem entendeu agora, me ajude.
valeu
[WWW] aim icon [ICQ]
Samuel_PessorrussoPJ
JavaEvangelist
[Avatar]

Membro desde: 22/04/2004 00:00:00
Mensagens: 451
Localização: 4759103
Offline

faz essa tal de table um singleton e a chame de dentro do EJB para obter a conexão

http://
[WWW] aim icon [ICQ]
paulokarolPJ
Debugger
[Avatar]

Membro desde: 14/01/2005 00:00:00
Mensagens: 66
Offline

Cara desculpa se a pergunta pode parecer besta, mas o q eh singleton, pode medar um exemplo de como faria isso?
agradeceria muito
[WWW] aim icon [ICQ]
matheusPJ
GUJ Hacker
[Avatar]

Membro desde: 23/03/2003 00:00:00
Mensagens: 6928
Offline

paulokarol wrote:Cara desculpa se a pergunta pode parecer besta, mas o q eh singleton, pode medar um exemplo de como faria isso?
agradeceria muito


http://www.google.com.br/search?hl=pt-BR&q=singleton+example&btnG=Pesquisa+Google&meta=

http://www.portaljava.com
[WWW] aim icon [ICQ]
Samuel_PessorrussoPJ
JavaEvangelist
[Avatar]

Membro desde: 22/04/2004 00:00:00
Mensagens: 451
Localização: 4759103
Offline

Relaxa.. é um design pattern

é só colocar o construtor da sua classe como private e incluir um método static synchronize que retorne uma instancia dessa classe (sempre a mesma instância, crie uma var estatica)

Exemplo


Assim é só você chamar Table.getInstance() de dentro de seus EJBs para obter a sua classe que faz alguma coisa...

http://
[WWW] aim icon [ICQ]
paulokarolPJ
Debugger
[Avatar]

Membro desde: 14/01/2005 00:00:00
Mensagens: 66
Offline

Amigos, obrigado pelas ajudas, mas infelizmente meu problema ainda existe, vou me resumir a exatamente o ponto q esta me dando dor de cabeça pra ver se alguem me ajuda, seguinte, como estou usando BMP eu tenho q incluir no banco, nao o conteiner, nao eh isso? Entao seguinte, como em td jdbc tenho a seguinte linha:

connection = pResource.connection;
statement = connection.createStatement();

pResource eh uma classe minha q recebo como parametro com a Connection, isso NAO ESTA DENTRO DO EJB. as la dentro eu tenho isso:

recordsAffected = statement.executeUpdate(command);

isso q esta me tirando o sono, como nao posso passar a connection pro ejb, como vou poder criar um statement e dar um executeUpdate se esses valores chegam nulos no meu ejb. So isso q quero saber como abrir a conexao fora do ejb e usa-la dentro dele?
obrigado
[WWW] aim icon [ICQ]
Samuel_PessorrussoPJ
JavaEvangelist
[Avatar]

Membro desde: 22/04/2004 00:00:00
Mensagens: 451
Localização: 4759103
Offline

de dentro do EJB vc chama a classe que gerencia as conexões, por isto que essa classe é um Singleton.

dentro do ebj:

MinhaClasse connectionManager = MinhaClasse.getInstance();
Connection con = connectionManager.getConnection();

http://
[WWW] aim icon [ICQ]
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team