| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/04/2005 17:09:35
|
paulokarolPJ
Debugger
![[Avatar]](/images/avatar/0)
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!!!
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/04/2005 18:02:40
|
matheusPJ
GUJ Hacker
![[Avatar]](/images/avatar/1)
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 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/04/2005 18:04:01
|
bejetoPJ
JavaEvangelist
![[Avatar]](/images/avatar/1)
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:// |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/04/2005 18:27:34
|
paulokarolPJ
Debugger
![[Avatar]](/images/avatar/0)
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
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/04/2005 18:38:53
|
matheusPJ
GUJ Hacker
![[Avatar]](/images/avatar/1)
Membro desde: 23/03/2003 00:00:00
Mensagens: 6928
Offline
|
refectoring detected :grin:
|
http://www.portaljava.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/04/2005 08:49:17
|
darkseidPJ
GUJ Master
![[Avatar]](/images/avatar/1)
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 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/04/2005 11:27:19
|
Samuel_PessorrussoPJ
JavaEvangelist
![[Avatar]](/images/avatar/1)
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:// |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/04/2005 13:18:40
|
paulokarolPJ
Debugger
![[Avatar]](/images/avatar/0)
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
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/04/2005 13:34:21
|
Samuel_PessorrussoPJ
JavaEvangelist
![[Avatar]](/images/avatar/1)
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:// |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/04/2005 13:40:49
|
paulokarolPJ
Debugger
![[Avatar]](/images/avatar/0)
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
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/04/2005 13:48:24
|
matheusPJ
GUJ Hacker
![[Avatar]](/images/avatar/1)
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 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/04/2005 14:03:54
|
Samuel_PessorrussoPJ
JavaEvangelist
![[Avatar]](/images/avatar/1)
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:// |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/04/2005 14:56:44
|
paulokarolPJ
Debugger
![[Avatar]](/images/avatar/0)
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
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/04/2005 17:15:30
|
Samuel_PessorrussoPJ
JavaEvangelist
![[Avatar]](/images/avatar/1)
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:// |
|
|
 |
|
|