Pessoal estou preciso usar um método java em uma function no postgre, então implementando isso com o PL/JAVA fiz dessa forma
declarei a function no postgre
CREATE OR REPLACE FUNCTION "public"."enviarEmail" (
"protocolo" varchar,
"host" varchar,
"porta" varchar,
"usuario" varchar,
"senha" varchar,
"remetente" varchar,
"destinatario" varchar,
"assunto" varchar,
"mensagem" varchar,
"isusarttls" boolean,
"isusarfactoryssl" boolean,
"isautenticacaossl" boolean
)
RETURNS boolean AS
$body$
br.brasif.email.EnviarEmail.enviarEmail
$body$
LANGUAGE 'java'
VOLATILE
CALLED ON NULL INPUT
SECURITY INVOKER
COST 100;
importei o jar assim
select sqlj.install_jar('file:/C:/Arquivos de programas/PostgreSQL/8.3/share/pljava/email.jar', 'email', true)
até ai não deu nenhum erro, porem quando chamo o metodo ele diz que não existe nenhum método com tal assinatura na classe EnviarEmail
select public."enviarEmail"('smtp', 'brasif.com.br', '25', '[email removido]', '123456', '[email removido]', '[email removido]', 'Teste', 'Mensagem', false, false, true);
essa é a mensagem de erro
ERROR: Unable to find static method br.brasif.email.EnviarEmail.enviarEmail with signature (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;)Z