From: | thomas at tada(dot)se (Thomas Hallgren) |
---|---|
To: | |
Subject: | [Pljava-dev] Trigger problem |
Date: | 2006-04-23 10:27:20 |
Message-ID: | 444B5688.1040105@tada.se |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pljava-dev |
Hi Mark,
Can you please provide the backend log? You're likely to find it under
<postgresql installation directory>\data\pg_log if you're using the
Windows installer defaults.
From the sound of it, this is not an error in your code. It's not
unlikely that you're bitten by one of the bugs in 1.2 that has been
fixed in the coming 1.3 version. Perhaps you could try the latest
snapshot? You'll find the latest windows binaries at:
http://eng.tada.se/pljava/pljava-i686-pc-mingw32-pg8.1-1.3.dev.tar.gz
Install instructions here:
http://wiki.tada.se/display/pljava/Windows+Installation
Regards,
Thomas Hallgren
Mark Colman wrote:
> Hi,
>
> I am running PostgreSQL 8.1 on Windows and installed pl/java automatically
> using the Windows installer. I have created a simple table and executed the
> following:
>
> Create function emailme()
> Returns trigger
> As 'dbudf.SendMail.send'
> Language java;
>
> Create trigger trg_emailme
> After insert on aTable
> For each row
> Execute procedure emailme();
>
> I have written the following class:
>
> package dbudf;
>
> import javax.mail.*;
> import javax.mail.internet.*;
> import java.util.*;
>
> public class SendMail
> {
> public static void send(org.postgresql.pljava.TriggerData td)
> {try{
> Properties props = System.getProperties();
> props.put("mail.smtp.host", "smtp.tiscali.co.uk");
> Session session = Session.getDefaultInstance(props, null);
> Message msg = new MimeMessage(session);
> msg.setFrom(new InternetAddress("macolman at tiscali.co.uk"));
> msg.setRecipients(Message.RecipientType.TO,
> InternetAddress.parse("m.a.colman at durham.ac.uk", false));
> msg.setSubject("A change to your data");
> msg.setText("Your database has been changed.\n\nPlease use
> the PGAdmin tool to browse the table involved.\n\nMark Colman");
> msg.setHeader("X-Mailer", "LOTONtechEmail");
> msg.setSentDate(new Date());
> Transport.send(msg);
> }
> catch (Exception e)
> {
> System.err.println("Error: "+e.toString());
> }
> }
> }
> Which compiles fine, put it in a directory dbudf, and added the directory to
> a jar called SendMail.jar - I can then call dbudf.SendMail.send(null) from
> within a simple test harness and it sends the e-mail message expected.
>
> I have then executed
>
> Select
> sqlj.install_jar('file:///c:/j2sdk1.4.2_09/lib/SendMail.jar','SendMail',true
> );
> Select sqlj.set_classpath('public','SendMail');
>
> Which seems fine. Then I insert a row into the table, and get
>
> ERROR: Unable to find static method dbudf.SendMail.send with signature
> (Lorg/postgresql/pljava/TriggerData;)V
>
> Any help greatly appreciated - I am sure this is something glaringly obvious
> that I'm missing.
>
> Mark
> _______________________________________________
> Pljava-dev mailing list
> Pljava-dev at gborg.postgresql.org
> http://gborg.postgresql.org/mailman/listinfo/pljava-dev
>
From | Date | Subject | |
---|---|---|---|
Next Message | Thomas Hallgren | 2006-04-23 10:31:58 | [Pljava-dev] Trigger problem |
Previous Message | Mark Colman | 2006-04-23 09:56:00 | [Pljava-dev] Trigger problem |