Banco Oracle e JavaMail

2 respostas
Rodrigo_Kossmann

Buenas!!

Estou tendo um problema que esta me dando uma dor de cabeça.

Preciso ler uma caixa de email atravez do java, e passar essa função para um Banco Oracle 11g.

Nesse trecho de codigo, eu pego o corpo do email:
while (objMsg instanceof MimeMultipart || objMsg instanceof Multipart) {
                    if (objMsg instanceof MimeMultipart) {
                        MimeMultipart m = (MimeMultipart) objMsg;
                        BodyPart body1 = m.getBodyPart(0);
                        objMsg = body1.getContent();
                    }

                    if (objMsg instanceof Multipart) {
                        multipart = (Multipart) message.getContent();
                        BodyPart body = multipart.getBodyPart(0);
                        objMsg = body.getContent();
                    }
                }

                textoEmail = (String) objMsg;
O problema esta acontecendo é que o maldito Oracle faz esse teste:
objMsg instanceof MimeMultipart
Localmente, o resultado é conforme previsto, true, já no banco da false, e obviamente da problema do Parse:
textoEmail = (String) objMsg;

Alguem sabe do porque isso esta acontecendo??

2 Respostas

E

Você só pode fazer o cast de uma variável para String se o conteúdo dessa variável for um objeto String. Portanto, antes de fazer o cast para String, teste um instanceof String.

Rodrigo_Kossmann

entanglement:
Você só pode fazer o cast de uma variável para String se o conteúdo dessa variável for um objeto String. Portanto, antes de fazer o cast para String, teste um instanceof String.

Sim sim, eu sei.

Talvez eu não tenha expresso bem o erro que acontece.

O que esta acontecendo é que, no Oracle, os instance of estão dando false quando tinha que dar true. Localmente, a função executa normalmente.
Eu não posso testar se o objeto é String por que ele TEM que se String quando cair ali.

Criado 15 de setembro de 2011
Ultima resposta 15 de set. de 2011
Respostas 2
Participantes 2